python - 表单缺少 1 个必需的位置参数:“请求”
问题描述
我在以前的应用程序中对表单使用了相同的代码,但这次它似乎不起作用,迁移已经完成,我已经在这一天了,无法找到一个很好的解决方案来解释为什么这个表单不起作用。
def gst_form(request):
if request.method == 'POST':
form = gst_form(request.POST)
if form.is_valid():
form.save()
return redirect("/")
else:
return HttpResponse("Details Invalid")
else:
form = gst_form()
context= {'form':form}
return render(request, 'main/form.html', context)
解决方案
看起来您已经将视图和表单都gst_form
作为名称。因此,这意味着当您在视图中调用时gst_form
,您对视图函数进行了递归调用,因此您不会构造表单。
解决此问题的一种简单方法是重命名您的表单,例如GstForm
:
class GstForm(forms.ModelForm):
# …
然后不再有名称冲突:
from ….forms import GstForm
# …
def gst_form(request):
if request.method == 'POST':
form = GstForm(request.POST)
if form.is_valid():
form.save()
return redirect('/')
else:
form = GstForm()
context= { 'form': form }
return render(request, 'main/form.html', context)
此外,这也符合PEP-0008 风格指南:
类名通常应该使用
CapWords
约定。
推荐阅读
- excel - 更改事件的 VBA 宏不适用于键入的数据输入
- javascript - 美化 vscode 插件,如何移除;从行尾?
- java - 使用带有数组的 split() 方法在 Java 中更改 HashMap 的输入而不会崩溃
- fortran - 与实际过程相关的伪参数与伪过程的伪参数不同
- wordpress - 我是否还需要缓存插件,例如 W3 Total Cache 或 WP Super Cache 等来加速 WordPress?
- r - 通过 R 数据框并在某些条件下增加薪水
- windows - kafka.common.KafkaException: Found directory E:\software\kafka_2.10-0.10.2.1\bin, 'bin' 不是topic-partition的形式
- javascript - 如何通过单击 JavaScript 中的不同元素来切换元素?
- python - python中类返回的索引
- php - 再次迁移特定表 laravel