こんにちは私はdjangoプロジェクトを書いています、そして私はこのようなテンプレートコードを書きます:
<ul id="nav">
<li><a href="/">Home</a></li>
<li><a href="/user/">Users</a></li>
{% if user %}
<li><a href="/user/{{ user.id }}/">Settings</a></li>
<li><a href="/logout/">Log Out</a></li>
{% else %}
<li><a href="/login/">Log In</a></li>
<li><a href="/signup/">Sign Up</a></li>
{% endif %}
</ul>
ログインビューでは、次のように記述します。
def login(request):
if user_logged_in(request):
return redirect('/')
if request.method == 'GET':
form = LogInForm()
return render_to_response(LOGIN_PATH, {'form':form}, context_instance=RequestContext(request))
しかし、サーバーを実行すると、ユーザーがログインしておらず、ログインページにアクセスすると、[設定]と[ログアウト](コンテキスト内にユーザーオブジェクトがあります)が表示されますが、表示されないはずです。
RequestContextを削除すると、たとえばreturn render_to_response(LOGIN_PATH、{'form':form})とすると、問題ありません。と
return render_to_response(LOGIN_PATH, {'form':form, 'user':None}, context_instance=RequestContext(request))
大丈夫です。しかし、私はそれをしたくありません。
私はそれが汚いデザインであることを知っています、まあ...私は提案と解決策を探しています。どうもありがとう〜!