私はnews.articleとportfolio.entryの2つのモデルを持っています。どちらのモデルにも、「is_campaign」を true に設定するための BooleanField があります。
最新のキャンペーン記事を取得できるように、カスタムのテンプレートタグを作成しようとしています (1 つしかないはずです)。
これが私のテンプレートタグです: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 %}
しかし、出力が得られません。これは間違った方法ですか?