2011-09-19 120 views
3

是否有另一種方式通過不從視圖中傳遞request.user來獲取request.user?我認爲從視圖中的所有函數傳遞request.user到模板是相當錯誤的。有什麼方法或模板可以讓用戶或數據庫中的任何對象?將request.user傳遞給Django中的模板

回答

8

默認情況下(我在談論Django版本1.3),你不需要改變TEMPLATE_CONTEXT_PROCESSORS。因爲default value已經包含* django.contrib.auth.context_processors.auth *。

所以你的問題:在默認情況下,你應該能夠使用用戶消息燙髮變量在模板中。例如:

User: {{user.username}} 
{% if perms.appname.permname %} 
    ... do something usefull ... 
{% endif %} 
+1

ow,我明白了。對不起,我是一個noob。在數據庫中如何回合一個對象?有沒有一種模板可以得到它的方法? –

+0

我不確定數據庫中的_object是什麼意思。如果您的模型(model.py中的類)想要顯示它,可以使用[通用視圖](https://docs.djangoproject.com/en/1.3/ref/generic-views/#list-detail -generic-視圖)。 – vasco

+0

我有這個叫做SchoolSetting的模型,它總是包含1個或多個對象。我想獲得第一個對象(SchoolSetting.objects.all()[0]),並將其置於template_context_processors的默認值 –