Django Emailfield固定后缀

时间:2019-05-27 15:19:05

标签: django forms

在我的联系人模型中,我使用EmailField来确保保存了有效的电子邮件地址。

但是,在我的表单中,我只希望用户能够在@之前更改部件,而域部件不是用户定义的。 (例如,每封电子邮件都必须以@gmail.com结尾)

在验证和显示阶段之前和之后,我研究了很多有关修改Django表单字段值的问题,但是很多答案都是“ hacky”,或者对于我的情况来说似乎是一种解决方法。

>

是否存在某种显示过滤器的支持,该过滤器可管理Django表单字段的固定前缀/后缀,而无需编辑POST值或无需取消某些验证?

1 个答案:

答案 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)