Python Django在没有上下文的情况下进行渲染。为什么?
我正在为一个机构建立一个新的框架。我目前正在与Django合作创建该框架。当我创建“新用户”表单时,我注意到页面的某些部分在没有上下文的情况下呈现。为什么呢 看: view.pyPython Django在没有上下文的情况下进行渲染。为什么?,python,django,scope,rendering,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(
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', {})
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
]
user/home.html
{% user.username %}
{% user.username %}
user/new.html
{% user.username %}
{% user.username %}
url.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', {})
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
]
从django.conf.url导入url
从…起导入视图
URL模式=[
url(r'^$',views.index),#用户主页
url(r“^new/”,视图。新建用户),#添加用户
url(r'^(?P[0-9]+)/edit',views.edit_user),#edit user
]
如您所见,没有上下文可用于渲染新用户,但它会渲染它。我担心这会给将来带来一些问题。虽然,这是期望的效果,但我不理解…您需要知道
user
django.contrib.auth.models.user的实例总是由django为您传递给上下文。它与request.user
完全相同。即使用户
没有注册或登录到匿名用户
的实例中,也会被传递。显示您的URL.pyURL更新!!!您是否有编辑用户视图?如果是,就贴出来。不,我不贴。我的观点是:在index
视图中,上下文工作正常。但是在new\u用户
视图中,假设索引
上下文,我认为,因为它正在工作。。。我只是不明白…所以,如果我把{%user.username%}
放在模板中,它会在没有任何上下文的情况下呈现user
实例?@MarcoAurélio是的。另外,使用user.is\u authenticated
检查用户是否经过身份验证也是一种很好的做法,这样您就可以决定是否显示他们的用户名我不知道。。。文件里有吗?“@MarcoAurélio,我建议你从