0

django-registration を使用していますが、問題があります。ユーザーのログイン ステータスを取得し、それをプロジェクト内のすべての HTML ページに渡したいと考えています。私は通常、このようにviews.pyで宣言するだけです

logged_in =request.user.is_authenticated() # get login status

次に、それをコンテキストとして対応する html に渡します。現在、django-registration を使用しlogged_inており、django-registation によってレンダリングされたすべての html に渡す必要がありますが、これを行う方法がわかりません。django-registration コードを変更しないようにしています。context_processors が必要な気がしますが、ここで本当に何をする必要があるかわかりません。助けてください !!

4

3 に答える 3

1

(デフォルトで付属する) に追加django.core.context_processors.requestすると、テンプレートにインスタンスが作成されます。次に、次のように入力して、テンプレートのユーザー (認証済みまたは, neverの場合があります) にアクセスできます。TEMPLATE_CONTEXT_PROCESSORSrequestUserAnonymousUserNone

{% if request.user.is_authenticated %}
于 2012-08-29T17:38:31.547 に答える
0

リクエストオブジェクト自体は、htmlページからアクセスできます

base.htmlファイルでそれを使用して、次のようなすべてのページでアクセスすることをお勧めします。

  {% if request.user.is_authenticated %}   
于 2012-08-29T13:53:04.020 に答える
0

django 1.4 を使用していますが、明らかrequestにデフォルトのコンテキストではありません。または、そのままではデフォルトでアクセスできなかっrequestたので、これを自分に追加したところ、settings.pyうまくいきました

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.contrib.messages.context_processors.messages",
"django.core.context_processors.request",)

もちろん、私の場合は必要なだけでし"django.core.context_processors.request"たが、オーバーライドしているdefault context processorsので、設定に手動で追加する必要があります

于 2012-08-30T10:19:35.097 に答える