2010-05-27 78 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

相關問題