django - 表单验证不起作用 Django 并仅在消息上打印
问题描述
Django 表单验证不起作用。它只打印以下消息:表单无效!
我是 Django 初学者,我无法弄清楚为什么会发生这种情况。
form.py 中的我的代码:
efrom django import forms
from django.contrib.auth.models import User
from django.core.exceptions import ValidationError
from django.forms.widgets import CheckboxSelectMultiple
from blog.models import Category
from wsgiref.validate import validator
class PostForm(forms.Form):
title = forms.CharField(max_length = 100, min_length= 1,)
slug = forms.SlugField(allow_unicode=True)
message = forms.CharField(widget = forms.Textarea)
banner = forms.ImageField()
category = forms.ModelChoiceField(queryset=Category.objects)
authors = forms.ModelChoiceField(queryset=User.objects,
widget=CheckboxSelectMultiple)
def clean(self):
cleaned_data = super(PostForm, self).clean()
slug = cleaned_data['slug']
if not "sepehr" in slug:
raise forms.ValidationError("here we have some errors !")
return cleaned_data
我在视图中的代码:
class HoemView(generic.TemplateView):
template_name = 'blog2/create.html'
def get(self, request):
form = PostForm()
context = {
'form':form
}
return render(request, self.template_name, context)
def post(self, request):
form = PostForm(request.POST, request.FILES)
if form.is_valid():
return HttpResponse('form is valid!')
return HttpResponse('form is not valid!')
解决方案
您所看到的只是“表格无效!” 因为这就是您在 HttpResponse 中返回的所有视图。
将最后一行从:
return HttpResponse('form is not valid!')
至:
return HttpResponse(form.errors)
那应该告诉你你的错误是什么。
推荐阅读
- amazon-web-services - Terraform:启动源实例时出错:InvalidAMIID.Malformed
- python - 向未连接任何视图的 html 发送数据
- python-3.x - “在浏览器中打开”Docker 容器将我发送到入门教程
- dart - 如何快速检查非常大的 BigInt 的素数?
- javascript - lodash groupby 和 sum 对象属性
- c# - 如何以编程方式获取和设置 AzureAppProxyAccessCookie 以访问 Azure 应用程序代理后面的本地 API
- android - OkHttpClient 与移动运营商问题
- python - 如何实现使用图像作为观察的 2D OpenAI-Gym 环境?
- c - 如何轻松检查输入是否为 char 而不是运行它?
- r - r 脚本无任何输出