gpt4 book ai didi

Django ModelForm is_valid() 错误类型

转载 作者:行者123 更新时间:2023-12-04 20:03:14 27 4
gpt4 key购买 nike

我有一个EmailField(primary_key=True)。我使用 ModelForm 向用户呈现表单,并在回发时调用 form.is_valid()

我在该字段中看到两种类型的错误。一是主键的唯一值约束(该电子邮件地址已存在)。另一个是无效的电子邮件地址错误。

我想对每个错误做出不同的 react 。有没有一种简单的方法可以识别验证失败是由于实际输入格式错误与唯一约束造成的?

最佳答案

我想出了如何实现我想要的。我的目标是避免唯一约束,以便在提交重复的电子邮件地址的情况下,我可以默默地忽略表单提交并成功(从用户的角度来看,因为他们的提交是空操作)。

首先重写我的 ModelForm 定义上的 validate_unique 方法。

from django.forms import ModelForm
from apps.announcer.models import Subscriber

class SubscribeForm(ModelForm):
class Meta:
model = Subscriber
exclude = ('created',)

def validate_unique(self):
pass

由于 validate_unique 方法已转换为 noop,因此 View 必须执行所需的任何验证。因此,不要调用 form.save(),而是调用 entity = form.save(commit=False)。对实体执行所需的验证,如果需要,请调用 entity.save()

关于Django ModelForm is_valid() 错误类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4103569/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com