在我的联系人模型中,我使用EmailField来确保保存了有效的电子邮件地址。
但是,在我的表单中,我只希望用户能够在@
之前更改部件,而域部件不是用户定义的。 (例如,每封电子邮件都必须以@gmail.com
结尾)
在验证和显示阶段之前和之后,我研究了很多有关修改Django表单字段值的问题,但是很多答案都是“ hacky”,或者对于我的情况来说似乎是一种解决方法。
>是否存在某种显示过滤器的支持,该过滤器可管理Django表单字段的固定前缀/后缀,而无需编辑POST值或无需取消某些验证?
答案 0 :(得分:0)
在表单中使用clean方法验证电子邮件。会是这样的
def clean(self):
"""Check if valid email for institution."""
super().clean()
cleaned_data = self.cleaned_data
if not '@gmail.com' in cleaned_data['email']
msg = forms.ValidationError("Your email must be @gmail")
self.add_error('email', msg)