数据库
首页 > 数据库> > python-mongodb要求中的StringField

python-mongodb要求中的StringField

作者:互联网

我想知道是否可以对用户文档的设置添加要求以检查特定的字符串.这个想法是当使用电子邮件地址创建用户文档时,我想确保电子邮件来自大学,因此应以“ .edu”结尾
例:
可以接受“ john.doe@college.edu”,但不能接受“ john.doe@gmail.com”

这是我的代码:

class User(db.Document, UserMixin):
    name = db.StringField(max_length=255, unique=True)
    email = db.StringField(max_length=255, unique=True)
    phone = db.StringField(max_length=255, unique=True)
    password = db.StringField(max_length=255)
    active = db.BooleanField(default=True)
    confirmed_at = db.DateTimeField()
    roles = db.ListField(db.ReferenceField(Role), default=[])

解决方法:

您可以定义一个可选的regex argument

email = db.StringField(max_length=255, unique=True, regex=r'.*?boston\.edu$')

而且,为什么在这种情况下不使用特定的EmailField:

email = db.EmailField(max_length=255, unique=True, regex=r'.*?boston\.edu$')

标签:documents,mongodb,python,mongoengine
来源: https://codeday.me/bug/20191028/1955062.html