python - Django 在没有上下文的情况下进行渲染。为什么?

标签 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', {})

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.Useruser 实例总是 传递给您的上下文 Django 。它与 request.user 相同。即使 User 未注册或登录,也会传递 AnonymousUser 的实例。

关于python - Django 在没有上下文的情况下进行渲染。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40922116/

相关文章:

python - 将 3D numpy 数组保存到 .txt 文件

python - 如何在 Python 中将 float 格式化为固定宽度

python - Pygame 无边界打开,有一些偏移

scope - 为什么/如何确定函数何时覆盖 Julia 中的局部变量?

python - 关于如何摆脱 self 的任何想法?

python - 验证 CreateView 表单中日期时间输入的唯一性

Django-Channels 在给出名称或服务未知错误时失败

Django、mozilla-django-oidc 和管理员

powershell - 在Powershell中使用子脚本修改父脚本中的变量

javascript - 从外部访问 JavaScript switch 语句内声明的变量