0

コード

@register.inclusion_tag('template.html', takes_context=True)
def include_client_side_bar(context):
    return {
        'STATIC_URL': settings.STATIC_URL,
        }

私のコードは次のようになります。この関数内の request.user オブジェクトにアクセスしたいのですが、取得できません。

デバッガーで、これらの変数を確認できます。 ここに画像の説明を入力

私が思い出す限り、私はこれを django 1.3 で成功させました。

4

2 に答える 2

1

設定にリクエスト コンテキスト プロセッサが含まれていることTEMPLATE_CONTEXT_PROCESSORS、およびビューがRequestContext.

于 2012-06-30T02:46:37.873 に答える
1

request = context.get('request', None)リクエストキーが存在しない場合は、 None 値を割り当ててください。

http://docs.python.org/library/stdtypes.html#dict.get

アップデート:

また、このようなもので、ユーザーをincludes_tagに渡すことができます

# In your template_tag
@register.inclusion_tag('template.html', takes_context=True)
def include_client_side_bar(context, user):
    if user:
         pass # do something
    return {
        'STATIC_URL': settings.STATIC_URL,
    }

# in your template
{% include_client_side_bar user=request.user %}
于 2012-06-30T03:33:41.627 に答える