gpt4 book ai didi

python - 如何覆盖自定义 UserChangeForm 中用户名的 django 'unique' 错误消息

转载 作者:太空狗 更新时间:2023-10-29 21:29:08 27 4
gpt4 key购买 nike

我正在尝试覆盖默认设置“具有该用户名的用户已存在。”在我的自定义 UserChangeForm 表单中输入现有用户名时显示的错误消息。使用的Django版本:1.6.1

这是我的代码:

class CustomUserChangeForm(forms.ModelForm):
username = forms.RegexField(
label="User name", max_length=30, regex=r"^[\w.@+-]+$",
error_messages={
'invalid': ("My message for invalid"),
'unique': ("My message for unique") # <- THIS
}
)

class Meta:
model = get_user_model()
fields = ('username', 'first_name', 'last_name', 'email',)

但是,如果我使用此代码输入现有用户名,我仍然会看到默认的“具有该用户名的用户已存在”。信息。请注意,当输入错误的用户名(包含无效字符)时,会显示自定义的“My message for invalid”。

最佳答案

当前 unique 错误消息无法在表单字段级别自定义,引用自 docs :

class CharField(**kwargs)

...

Error message keys: required, max_length, min_length

...

class RegexField(**kwargs)

...

Error message keys: required, invalid

所以,总而言之,对于你的username字段只有required, invalid, max_length, min_length 错误消息是可定制的。

您只能在模型字段级别设置唯一 错误消息(参见 source )。

另见相关 ticket .

另见 django.contrib.auth.forms.UserCreationForm已制作(注意自定义 duplicate_username 错误消息)- 自定义错误消息也可能是您的一个选项。

希望对您有所帮助。

关于python - 如何覆盖自定义 UserChangeForm 中用户名的 django 'unique' 错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22264368/

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