Django上下文处理器获取AnonymousUser

时间:2010-05-27 13:13:05

标签: python django

而非用户。

def myview(request):   
    return render_to_response('tmpl.html', {'user': User.objects.get(id=1})

工作正常并将用户传递给模板。 但

def myview(request):   
    return render_to_response('tmpl.html', {}, context_instance=RequestContext(request))

使用上下文处理器

def user(request):
    from django.contrib.auth.models import User
    return {'user': User.objects.get(id=1)}

传递AnonymousUser,所以我无法得到我需要的变量:( 怎么了?

1 个答案:

答案 0 :(得分:1)

您确定在settings.py中的TEMPLATE_CONTEXT_PROCESSORS启用了上下文处理器吗?

更重要的是,它是在内置django.contrib.auth.context_processors.auth之前还是之后?如果是之前,它将被该处理器覆盖,该处理器将user重新定义为实际登录用户,如果没有,则重新定义AnonymousUser。