私は数年後にdjangoに戻ってきました。クラスベースのビューを採用しましたが、何らかの理由でファンが間違っていましたが、カスタムコンテンツプロセッサにデータを表示できません。私は主にアプリケーションでGeneric Viewsを使用していますが、わかっていることから、ビューにコンテキストを自動的に提供する必要があります。テンプレートで表示されていないカスタムコンテキストプロセッサ
これは私が辞書を印刷するときというのが私のコンテキストプロセッサ(context_processors.py)
from models import Alert
def context_alerts(request):
alert_list = {}
alerts = Alert.objects.filter(to_user=request.user)
alert_list['alerts'] = alerts
alert_list['unread_count'] = len([a for a in alerts if a.unread == True])
# printing to console - this works
print alert_list
return alert_list
注である - それは私のコンソールに表示されるので、私はそれが発射されて知っています。
ので
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'part_iq.context_processors.context_alerts'
],
},
},
]
最後に、これは一例図であるとして、それは私の設定でセットアップです - 私は、すべての標準クラスベースのビュー、約20かそこらを持っている:
class BuyerRfqList(ListView):
context_object_name = "rfqs"
template_name = "dashboard/buyer/rfq-list.html"
def get_queryset(self):
user = self.request.user
rfqs = Rfq.objects.filter(from_user=user, hidden=False).order_by("created_at")
return rfqs
私は単にテンプレート内のアラートを出力する(dictの名前とコンテキスト・プロセッサー・ファンクションの両方を試す)。
{{alert_list.unread_count}}
{{context_alerts.unread_count}}
運がない。
それが明らかなものであるように私は感じるが、私はジャンゴ/ wがあまりにもさびだと
返信ありがとうございますが、私は最初の質問を混乱させました。私は実際にテンプレート(編集済み)の{{alert_list.unread_count}}として持っています。カウントは、未読のもの(クエリセットに含まれているものすべて)です。 – picus