1

ホームページの表示を変更すると:

def home(request):
    return render_to_response('homepage.html')

def home(request):
    return render_to_response('homepage.html',context_instance=RequestContext(request))

サイトにログインするuser人は、Web ブラウザ (Firefox) を閉じても常にログインします。

なぜcontext_instance=RequestContext(request)これができるのですか?クッキーを使用していますか?

この状態を維持する時間。

ありがとう

ホームページは次のとおりです。

{% if user.is_authenticated %}
    <p>Welcome, {{ user.username }}. Thanks for logging in.</p>
{% else %}
    <p>Welcome, new user. Please <a href="/account/login_view">login</a></p>
{% endif %}
4

2 に答える 2

3

RequestContext を追加しても、ユーザーのログイン状態はまったく変更されません。そして、クッキーに関するあなたの質問はまったく意味がありません. RequestContext が行うことは、特定の変数をテンプレート コンテキストでアクセスできるようにすることです。その中には、authコンテキスト プロセッサが有効になっていると仮定すると、user変数があります。

RequestContext がなくても、ユーザーはログインしたままですが、user変数をコンテキストに渡さないため、ifステートメントは False と評価されます。ユーザーの実際のステータスとはまったく関係ありません。

于 2010-12-11T22:52:38.630 に答える
0

で定義したコンテキスト プロセッサcontext_instance=RequestContext(request)からコンテキストを追加すると、 がテンプレートに追加されます。この場合、これには の現在のユーザ オブジェクトが含まれます。削除すると、変数は存在しませんが、テンプレート内では例外は発生しませんが、ログインしていないユーザーの HTML がレンダリングされます!settings.pyuser

ユーザー情報は、Cookie を使用するセッションに保存されます。

于 2010-12-11T22:54:12.810 に答える