2010-05-27 43 views
0

而不是User。Django上下文处理器获取AnonymousUser

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

你确定你的背景处理器在TEMPLATE_CONTEXT_PROCESSORS中启用settings.py?

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

+0

已解决。只是将我的上下文处理器移动到TEMPLATE_CONTEXT_PROCESSORS的** end **。谢谢 – myfreeweb 2010-05-27 13:28:54

相关问题