Python 显示ModelForms的django表单验证错误

Python 显示ModelForms的django表单验证错误,python,django,forms,validation,Python,Django,Forms,Validation,我经常发现自己在视图中使用ModelForm来显示和转换视图。在模板中显示表单没有问题。我的问题是,当我使用这些方法时,表单通常不会使用is_valid方法进行验证。问题是我不知道是什么导致了验证错误 以下是视图中的一个基本示例: def submitrawtext(request): if request.method == "POST": form = SubmittedTextFileForm() if form.is_valid():

我经常发现自己在视图中使用ModelForm来显示和转换视图。在模板中显示表单没有问题。我的问题是,当我使用这些方法时,表单通常不会使用is_valid方法进行验证。问题是我不知道是什么导致了验证错误

以下是视图中的一个基本示例:

def submitrawtext(request):
    if request.method == "POST":
        form = SubmittedTextFileForm()
        if form.is_valid():
           form.save()
           return render(request, 'upload_comlete.html')
        return render(request, 'failed.html')
    else:
        form = SubmiittedTextFileForm()
        return render(request, 'inputtest.html', {'form': form})
我知道表单没有验证,因为我被重定向到failed.html模板,但我不知道为什么。is\u valid是false。如何设置此项以显示表单验证错误

两件事:

  • 您没有接受发送到邮局的
    邮件

  • 要查看错误消息,需要渲染回同一模板

  • 试试这个:

    def submitrawtext(request):
        if request.method == "POST":
            form = SubmittedTextFileForm(request.POST)
            if form.is_valid():
               form.save()
               return render(request, 'upload_comlete.html')
            else:
               print form.errors #To see the form errors in the console. 
        else:
            form = SubmittedTextFileForm()
        # If form is not valid, this would re-render inputtest.html with the errors in the form.
        return render(request, 'inputtest.html', {'form': form})
    

    我遇到了同样恼人的问题,并通过返回带有HttpResponse的
    form.errors.values()
    来解决它。代码如下:

    @csrf\u豁免
    def post(请求):
    form=UserForm(request.POST)
    如果form.is_有效():
    返回HttpResponse('All Good!')
    其他:
    返回HttpResponse(form.errors.values())#验证失败
    
    在我的情况下,它返回:

    • 此字段是必填字段。
    • 此字段是必填字段。
    • 此字段是必填字段。
    • 此字段是必填字段。
    它提供的信息不多,但足以给你一个想法