我正在为一个机构建立一个新的框架。我目前正在使用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 的上下文,但它会呈现它。我担心这可能会在未来带来一些问题。虽然,这是理想的效果,但我不理解......
答案 0 :(得分:1)
您需要知道Django将user
django.contrib.auth.models.User
实例始终传递给您的上下文。它与request.user
相同。即使User
未注册或记录在AnonymousUser
的实例中,也会被传递。