- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试用 Django 制作一个非常基本的网站。现在你只需输入你的名字,它就会被保存。但即使我按照说明进行操作 here它抛出错误 'WSGIRequest' object has no attribute 'get'
我的views.py
:
from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.urls import reverse
from django.http import HttpResponse
from .forms import NameForm
from django.views.decorators.csrf import csrf_protect
@csrf_protect
def get_name(request):
# if this is a POST request we need to process the form data
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = NameForm(request.POST)
# check whether it's valid:
if form.is_valid():
with open("name.txt" , "w") as f:
f.write(form.cleaned_data)
return HttpResponseRedirect('/nmindex/')
@csrf_protect
def vote_page(request):
return render(request, 'name.html', {'form': NameForm(request)})
forms.py
:
from django import forms
from django.views.decorators.csrf import csrf_protect
class NameForm(forms.Form):
your_name = forms.CharField(label='Your name', max_length=100)
urls.py
:
from django.contrib import admin
from django.urls import path, include
from nmindex import views
urlpatterns = [
path('data/', views.get_name),
path('vote/', views.vote_page),
path('admin/', admin.site.urls),
]
和模板name.html
:
<form action="/data/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit">
</form>
但是当我打开 http://localhost:8000/vote/ :
AttributeError at /vote/
'WSGIRequest' object has no attribute 'get'
Request Method: GET
Request URL: http://localhost:8000/vote/
Django Version: 3.0.5
Exception Type: AttributeError
Exception Value:
'WSGIRequest' object has no attribute 'get'
Exception Location: C:\Users\Sid\Envs\namesproj\lib\site-packages\django\forms\widgets.py in value_from_datadict, line 258
Python Executable: C:\Users\Sid\Envs\namesproj\Scripts\python.exe
Python Version: 3.8.2
Python Path:
['C:\\Users\\Sid\\names',
'C:\\Users\\Sid\\Envs\\namesproj\\Scripts\\python38.zip',
'c:\\users\\sid\\appdata\\local\\programs\\python\\python38-32\\DLLs',
'c:\\users\\sid\\appdata\\local\\programs\\python\\python38-32\\lib',
'c:\\users\\sid\\appdata\\local\\programs\\python\\python38-32',
'C:\\Users\\Sid\\Envs\\namesproj',
'C:\\Users\\Sid\\Envs\\namesproj\\lib\\site-packages']
Server time: Sat, 2 May 2020 08:00:03 +0000
Error during template rendering
In template C:\Users\Sid\names\templates\name.html, error at line 3
'WSGIRequest' object has no attribute 'get'
1 <form action="/data/" method="post">
2 {% csrf_token %}
3 {{ form }}
4 <input type="submit" value="Submit">
5 </form>
如有任何帮助,我们将不胜感激。
最佳答案
问题出在你的vote_page
方法。您不能使用 request
实例化表单作为数据。它需要一个类似字典的对象,如 QueryDict
,例如 request.POST
或 request.GET
, 所以 NameForm(<s>request</s>)
将不起作用。
def vote_page(request):
if request.method == 'POST':
form = <b>NameForm(request.POST)</b>
if form.is_valid():
# …
return redirect(<i>'name-of-some-view'</i>)
else:
form = NameForm()
return render(request, 'name.html', {'form': <b>form</b>})
Note: In case of a successful POST request, you should make a
redirect
[Django-doc] to implement the Post/Redirect/Get pattern [wiki]. This avoids that you make the same POST request when the user refreshes the browser.
关于python - Django - 'WSGIRequest' 对象没有属性 'get',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61556248/
如果我像这样制作上下文处理器: def add_external(request): context = {"stext":"this is the info"} return con
我在 views.py 文件中的这个函数中遇到了这个错误。这很令人困惑,因为我不知道“WSGIRequest”是什么,也不知道它为什么给我带来问题。我知道我有一个名为“newUser”的变量,因为当我
我在发布到API时遇到了麻烦,无法完全弄清该错误指的是什么。如果重要的话,我使用的是Django REST,并包含了回溯。 if (repeat == false) { post_data =
我已经制作了一个这样的身份验证类: Token Authentication for RESTful API: should the token be periodically changed? re
我正在尝试使用 Django 创建登录表单。我正在创建一个 View 女巫将处理登录的获取和发布请求。 这是我如何设计它的: class Login(View): def get(self,r
我正在尝试在我的 django 项目中创建一个身份验证模块。但是当我打开我的网站 url 时出现此错误:'WSGIRequest' object has no attribute 'user' 我试图
我有时会在 process_response 方法中的自定义中间件中收到此错误。我有以下中间件列表: MIDDLEWARE_CLASSES = [ 'django.middleware.common.
当我在自定义中间件类的 process_view 中执行 request.set_cookie() 时,我不断收到此异常。这是我的 settings.py 中中间件类的顺序: MIDDLEWARE_C
我正在尝试向 API 发出发布请求,并将结果保存到我的数据库表之一中。 这是我的代码。 这是我的模型。 patientId 是 MyUser 表的 userId 的外键 class MyUser(Ab
我有 Django1.9 中间件类: class MyMiddleware(object): def process_request(self, request): token
我已经针对类似问题尝试过一些解决方案,但没有一个有效: 'WSGIRequest' object has no attribute 'session' 'WSGIRequest' object has
我想制作一个应用程序,它可以获取 Excel 文件并读取其内容,而不使用表单和模型。 我不断收到标题中的错误,我想知道错误是什么。 这是我的 HTML: {% csrf_token %}
我正在我的 views.py 中检查用户是否经过身份验证。然而,Django 不断抛出异常 WSGIRequest 对象没有属性“is_authenticated”。我阅读了 stackoverflo
我正在尝试使用 curl 的 put 请求向本地服务器发出 put 请求: curl -X PUT -H "Content-Type: application/json" -d '{"connid":
我明白了AttributeError("'WSGIRequest' 对象没有属性 'args'",)当我尝试调用这个电话时 GET/sign_s3/?s3_object_type=image/jpeg
有人知道怎么回事吗?我有一个 wsgi 错误。我想添加一些信息来评分,特别是日期。但是,我收到此 wsgi 错误: 错误: AttributeError at /polisy/add_payd
我正在制作一个网页。有两种看法。 索引 和详细信息。在索引中,我使用 response.set_cookie('key', key) 为用户设置 cookie,其中 response = HttpRe
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我正在尝试用 Django 制作一个非常基本的网站。现在你只需输入你的名字,它就会被保存。但即使我按照说明进行操作 here它抛出错误 'WSGIRequest' object has no attr
这个问题已经有答案了: Django - Where are the params stored on a PUT/DELETE request? (8 个回答) 已关闭 7 年前。 def my_v
我是一名优秀的程序员,十分优秀!