有没有办法调用我的所有用户数据?不使用我的观点中的所有模板变量
模板:
{% csrf_token %}
<h1>Welcome {{user.full_name}} {{user.last_name}}</h1>
<h1>{{user.email}}</h1>
所以在我的观点中,我会使用更少的代码,而不是宣布所有的词典
视图
return render_to_response('user/userhome.html', user)
答案 0 :(得分:1)
对于django 1.8或更高版本,您可以直接访问模板中的{{user}}。但是,您可以在设置的TEMPLATE_CONTEXT_PROCESSOR中添加以下内容,以直接在模板中访问{{user}}。
'django.contrib.auth.context_processors.auth',
答案 1 :(得分:1)
您可以使用定义__contains__
和__getitem__
的类似dict的对象,但使用属性访问来设置属性,例如:
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)
然后您可以按照您希望的方式编写模板。