このビュー関数:
@login_required
def dashboard(request):
from myproject.myapp.models import UserProfile
k = UserProfile.objects.get( user=request.user.pk ).known
return render_to_response('dashboard.html', {'KNOWN': k, , context_instance=RequestContext(request))
このテンプレートに渡します:
{% if user.is_authenticated %}
{{ user.username }}
{% else %}
Login link
{% endif %}
{{ KNOWN }}
- すでにログインしています。
- ページは LOGIN_URL にリダイレクトされません (したがって、@login_required はログインしていると見なします)
- {{ KNOWN }} は完全に正常にレンダリングされます
- {{ user.username }} が表示されない
これはどのように可能ですか?確かにlogin_requiredが機能し、KNOWNを取得できた場合、ユーザーはどこかに存在する必要がありますか?
どうすればこれをデバッグできますか?
:-)
更新:私が削除した場合:
TEMPLATE_CONTEXT_PROCESSORS = ('django.core.context_processors.request',)
設定から、それは動作します。
ただし、それを削除すると、テンプレートで {{ request.get_full_path }} を使用する他のページが読み込まれなくなります。
イーク。
更新 2:
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.static",
"django.core.context_processors.request",)
リクエスト行を単独で追加すると、デフォルトである他のすべてが無効になります。ドー!
更新 3: 残念ながらまだ機能していません。
更新 4: 他の場所でタイプミスを発見し、Mark Lavin の回答がそれを修正したことを確認できます:)