Mongodb要求中的StringField

时间:2015-01-10 21:49:26

标签: python mongodb mongoengine documents

我想知道我是否可以在我的用户文档设置中添加一项要求以检查特定字符串。这个想法是当用一个电子邮件地址创建用户文档时,我想确保该电子邮件来自大学,所以它应该以#34; .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=[])

1 个答案:

答案 0 :(得分:4)

您可以定义一个可选的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$')