gpt4 book ai didi

Django 管理员 : Unique email verification fails against self

转载 作者:行者123 更新时间:2023-12-02 22:34:00 26 4
gpt4 key购买 nike

您好,这是我的 admin.py 中的一个片段

#admin.py
class UserForm(forms.ModelForm):
class Meta:
model = User

def clean_email(self):
email = self.cleaned_data['email']
if User.objects.filter(email=email).exists():
raise forms.ValidationError("This email already used")
return email

class UserAdmin(admin.ModelAdmin):
form = UserForm

admin.site.unregister(User)
admin.site.register(User, UserAdmin)

我用它来检查是否无法使用已使用的电子邮件地址创建新用户。问题是,当我编辑现有用户时,验证检查失败,因为有一个用户使用该邮件地址,但这没关系,因为这是我正在编辑的用户。

我如何告诉表单验证忽略与当前用户的匹配?

最佳答案

从查询中排除当前实例:

def clean_email(self):
email = self.cleaned_data['email']
if User.objects.filter(email=email).exclude(pk=self.instance.pk).exists():
raise forms.ValidationError("This email already used")
return email

关于Django 管理员 : Unique email verification fails against self,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11757172/

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