python - 为什么我没有定义名称“请求”?
问题描述
我正在关注 Django 教程并已达到使用目的return render
,目前我的 views.py 看起来像这样:
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
def construction_view(*args, **kwargs):
return HttpResponse("<h1> This site is currently being constructed. Please check back later </h1>")
def home_view(*args, **kwargs):
return render(request, "home.html", {})
尝试访问我的主页时出现错误:
views.py", line 9, in home_view
return render(request, "home.html", {})
NameError: name 'request' is not defined
根据 Django 文档请求,不确定是什么导致了这种情况是上面导入的渲染的一部分。
解决方案
request
始终是任何视图的第一个参数。在您看来,您的函数只有*args
and **kwargs
,因此request
将是args
. 最好使request
参数显式并使用:
# request ↓
def home_view(request, *args, **kwargs):
return render(request, "home.html", {})
由于您可能只将此视图用于没有 URL 模式的 URL 模式,因此您可以省略*args
and **kwargs
:
# ↓ omit *args and **kwargs
def home_view(request):
return render(request, "home.html", {})
推荐阅读
- javascript - 将 instanceof 与从函数返回的类一起使用
- python - Python Beautifulsoup 两次返回值
- django - 为什么 django PermissionRequiredMixin 没有按预期工作
- angular - 如何解决mapbox gl js上的addSource错误
- node.js - NodeJs 流、管道和 https 帖子
- r - 使用 sample_n 随机选择 R 中的行
- node.js - 如何从我的网站将 webhook 发送到 jotForm?
- python - AttributeError:模块“dask”没有属性“set_options”
- svn - 备份特定的 SVN 修订版
- snowflake-cloud-data-platform - DBT snowflake utf-8' 编解码器无法解码位置 1031 中的字节 0xa0:无效的起始字节