我有兩個模型news.article和portfolio.entry。兩種型號都有一個BooleanField,用於將「is_campaign」設置爲true。將兩個查詢集合到一個模板標記中
我試着去編寫自定義templatetag這樣我就可以得到最新的競選文章(應該只有一個)
這裏是我的templatetag:campaign_article.py
from itertools import chain
from django import template
from news.models import Article
from portfolio.models import Entry
register = template.Library()
def get_campaign():
#Get the newest news article with is_campaign=True
article = Article.objects.filter(is_campaign=True).order_by('-pub_date')[:1]
#Get the newest portfolio entry with is_campaign=True
portfolio = Portfolio_entry.objects.filter(is_campaign=True).order_by('-pub_date')[:1]
#combine article, and entry and display only the newest
campaign_article = list(chain(article, portfolio))[:1]
return {'campaign_article': campaign_article}
register.tag('campaign', get_campaign)
我曾經嘗試這樣做我的模板:
{% load campaign_article %}
{% for campaign_article in campaign %}
{{ campaign_article.id }}
{% endfor %}
但我沒有得到任何輸出。這是錯誤的方法嗎?
是的,這個工程!謝謝! –