1

論理的な選択肢は何ですか:

{% if request.user.is_active %}

render_to_responseビューがのディクショナリで返されない場合request、テンプレートは正しく機能しません。

ですから、どんなアイデアでも大歓迎です。

//編集済み

私の動機は、インストールされたアプリからビューを操作するとき、それらを変更する機会がないということです。

4

2 に答える 2

6

に追加django.contrib.auth.context_processors.authTEMPLATE_CONTEXT_PROCESSORSますsettings.py

これuserで、すべてのテンプレートに変数があります。したがって、これを使用できます。

{% if user.is_active %}

詳細については、ドキュメントを参照してください:設定のテンプレートコンテキストプロセッサ認証コンテキストプロセッサ

于 2012-10-10T17:00:44.237 に答える
5

ビュー.py:

def foo_view(request):
    ...
    is_active = request.user.is_active
    return render_to_response('template.html', {'is_active':is_active})

または context_processor:

def is_user_active(request):
    return {'is_active': request.user.is_active}

またはミドルウェア:

class IsUserActive:
    def process_template_response(self, request, response):
        response.context['is_active'] = request.user.is_active

template.html:

{% if is_active %}
    ...
{% endif %}

しかし、正直なところ、render_to_response があなたを満足させない理由がわかりません。

...
return render_to_response('template.html', 
    context_instance=RequestContext(request))
于 2012-10-10T16:48:02.707 に答える