2016-05-30 14 views
0

有沒有辦法調用我所有的用戶數據?不使用所有的模板變量在我的意見Django - 在render_to_response中使用我的上下文

模板:

{% csrf_token %} 
<h1>Welcome {{user.full_name}} {{user.last_name}}</h1> 
<h1>{{user.email}}</h1> 
在我的意見

所以我將使用更少的代碼,通過不聲明所有的字典

意見

return render_to_response('user/userhome.html', user) 
+0

在這裏找到我的答案http://stackoverflow.com/questions/2246725/django-template-context-processors – BrianCas

回答

1

對於django 1.8或更高版本,您可以直接訪問模板中的{{user}} 。不過,您可以在設置的TEMPLATE_CONTEXT_PROCESSOR中添加以下內容,以直接在模板中訪問{{user}}。

'django.contrib.auth.context_processors.auth', 
1

您可以使用類似字典的對象,它定義__contains____getitem__,但是使用屬性訪問設置屬性,如:

from django import shortcuts, template 
from django.contrib.auth.decorators import login_required 

class Page(dict): 
    # see http://stackoverflow.com/questions/4984647/accessing-dict-keys-like-an-attribute-in-python 
    def __init__(self, *args, **kwargs): 
     super(Page, self).__init__(*args, **kwargs) 
     self.__dict__ = self 

@login_required 
def foo(request): 
    page = Page() 
    page.user = request.user 
    return shortcuts.render_to_response('foo.html', page) 

,那麼你可以寫你的模板,你會完全相同的方式喜歡。

相關問題