我在Django表单中遇到属性错误,在此之后我被卡住了,请帮我解决这个问题
我的views.py文件
tasks=['sleep','drink','code']
class newforms(forms.Form):
task=forms.CharField(label='new_task',max_length=100)
def add(request):
if request.method=='POST':
form=newforms(request.method)
if form.is_valid():
task=form.cleaned_data['task']
tasks.append(task)
else:
return render(request,'add.html',{
'form':form
})
return render(request,'add.html',{
'form':newforms()
})
并且错误显示
答案 0 :(得分:1)
您应该将request.POST
作为数据传递给表单(或request.GET
或其他类似于字典的对象),而不是 :request.method
def add(request):
if request.method == 'POST':
form = newforms(request.POST, request.FILES)
if form.is_valid():
task = form.cleaned_data['task']
tasks.append(task)
else:
form = newforms()
return render(request,'add.html',{'form': form})
话虽这么说,但使用列表不是一个好主意。您在这里介绍global state。这使程序无法预测,但此外,这也意味着在重新启动服务器时数据不是持久性的。如果您以后使用多个工作人员,则意味着一个工作人员的状态不同于另一个工作人员。