当我点击提交表格时,我得到了这个错误

时间:2020-07-31 20:27:39

标签: python-3.x django attributeerror

我在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()

    })

并且错误显示

attribute error

1 个答案:

答案 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。这使程序无法预测,但此外,这也意味着在重新启动服务器时数据不是持久性的。如果您以后使用多个工作人员,则意味着一个工作人员的状态不同于另一个工作人员。