django - Django Emailfield 固定后缀
问题描述
在我的联系人模型中,我使用 EmailField 来确保我保存了一个有效的电子邮件地址。
然而,在我的表单中,我只希望用户能够更改之前的部分@
,域部分不是用户定义的。(例如,每封电子邮件都需要以 结尾@gmail.com
)
我已经查看了很多关于在验证和显示阶段之前和之后修改 Django 表单字段值的问题,但是很多答案有点“hacky”,或者对于我的案例来说似乎是一种解决方法。
是否有某种显示过滤器的支持,它管理 Django 表单字段的固定前缀/后缀,而无需编辑 POST 值或需要抑制某些验证?
解决方案
使用表单中的 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)
推荐阅读
- python - 这三种解决方案的时间复杂度是多少?
- python - 如何将已安装的软件包移动到新创建的虚拟环境?
- firebase - Firestore 数据上的嵌套 v-for 循环反应性地复制最深层的更改
- css - 使网格或弹性框中的项目每行具有相等的动态列数
- facebook - Facebook 受众广告会在亚马逊设备上运行吗?
- vue.js - 添加新添加的项目时,VueJS 索引会更新吗?
- python-3.x - 使用经过训练的 ANN 做出新的预测 - Keras
- python - 将对象从 AWS S3 移动到 MediaStore
- reactjs - 如何将材质 ui 组件包装为字段的 redux 表单组件?
- python - 处理 Selenium-Python 脚本期间显示的弹出窗口异常