我正在为一个机构建立一个新的框架。我目前正在使用 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', {})
user/home.html
{% user.username %}
user/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 的上下文,但它会呈现它。恐怕这会在未来带来一些问题。虽然,这是想要的效果,但我不明白...
最佳答案
您需要知道django.contrib.auth.models.User
的user
实例总是 传递给您的上下文 Django 。它与 request.user
相同。即使 User
未注册或登录,也会传递 AnonymousUser
的实例。
关于python - Django 在没有上下文的情况下进行渲染。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40922116/