【发布时间】:2023-03-12 13:49:01
【问题描述】:
我尝试了很多方法来使用 Django 验证表单。但它无法验证 Django 表单我看到很多文档和许多视频来实现表单验证。但它不会工作。任何人都可以提供解决方案。
1. 使用 Django 处理表单验证有几种方法?
2. 使用 Django 处理表单验证的最佳方式是什么?
我尝试过这种方式来处理验证错误。但它不能工作
我的代码
forms.py
from django.core.validators import validate_slug,validate_email
from django import forms
from .validators import validatenames
class validform(forms.Form):
firstname = forms.CharField(max_length=10)
class Meta:
fields = ['firstname']
def clean_firstname(self):
name = self.cleaned_data.get('firstname')
name_req = 'hari'
if not name_req in name:
raise forms.ValidationError("Not a name")
return name
views.py
from django.shortcuts import render
from .forms import validform
# Create your views here.
def index(request):
form = validform()
return render(request,'index.html',{'form':form})
index.html
<form>
{{ form.as_p }}
<input type="submit" value="submit">
</form>
我尝试了另一种方法来处理验证错误。这也行不通
我的代码
forms.py
from django.core.validators import validate_slug,validate_email
from django import forms
from .validators import validatenames
class validform(forms.Form):
firstname = forms.CharField((validators=[validatenames]))
class Meta:
fields = ['firstname']
views.py
from django.shortcuts import render
from .forms import validform
# Create your views here.
def index(request):
form = validform()
return render(request,'index.html',{'form':form})
index.html
<form>
{{ form.as_p }}
<input type="submit" value="submit">
</form>
validators.py
from django.core.exceptions import ValidationError
def validatenames(value):
if not 'hari' in value:
raise ValidationError("Not a name")
return value
我不知道哪里出错了
【问题讨论】:
-
你需要调用表单的
is_valid()方法。所以你可以这样称呼它if form.is_valid(): # some processing -
但我需要在 HTML 中添加单个字段验证。一旦我在字段中输入错误的数据,它的自动抛出字段是无效错误这种情况如何实现
-
要明确一点:所以您正在寻找一种在提交表单之前验证 html 表单中的字段的方法?类似于例如如果用户在该输入中输入非数字,则不允许提交表单的数字输入?
-
是的,如何验证
-
@Chris 是的,如何使用 Django 实现表单验证
标签: django django-models django-forms django-templates django-views