Django没有上下文渲染。为什么?

时间:2016-12-01 23:12:20

标签: python django scope rendering

我正在为一个机构建立一个新的框架。我目前正在使用Django来创建框架。当我创建“新用户”表单时,我注意到页面的某些部分是在没有上下文的情况下呈现的。那是为什么?

查找

view.py

from django.contrib.auth.models import User

def index(request):
    context = {
               'user': request.user,
               'userDB': User.objects.all()
              }
    return render(request, 'user/home.html', context)

def new_user(request):
    return render(request, 'users/new.html', {})

用户/ home.html做为

{% user.username %}

用户/ new.html

{% user.username %}

urls.py

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index),                                        # User homepage
    url(r'^new/', views.new_user),                                  # Add user
    url(r'^(?P<user>[0-9]+)/edit', views.edit_user),            # Edit user
]

正如您所看到的,没有可用于呈现 new_user 的上下文,但它会呈现它。我担心这可能会在未来带来一些问题。虽然,这是理想的效果,但我不理解......

1 个答案:

答案 0 :(得分:1)

您需要知道Django将user django.contrib.auth.models.User实例始终传递给您的上下文。它与request.user相同。即使User未注册或记录在AnonymousUser的实例中,也会被传递。