我无法对我的mongoengine模型类中的输入数据执行验证

2024-09-30 01:27:21 发布

您现在位置:Python中文网/ 问答频道 /正文

class TextBoxValues(DynamicDocument):
    entity_id = StringField(max_length=200, required=True) 
    textbox_type = StringField(max_length=1000, required=True)  
    regexp = re.compile('[A-Za-z]')
    entity_value = StringField(regex=regexp,max_length=None, required=True) 

我使用regex参数来执行验证,这对我来说不起作用,它仍然以任何格式接收输入,为什么


Tags: reidtruetyperequiredlengthmaxclass
1条回答
网友
1楼 · 发布于 2024-09-30 01:27:21

提供给StringField(regex=)的正则表达式实际上应该是一个字符串,但是如果给它一个编译的正则表达式,它也可以工作

问题是你的正则表达式。它应该是@wiktor stribiżew在评论中建议的{}

下面的最小示例演示了正则表达式按预期工作

from mongoengine import *
connect()    # connect to 'test' database

class TextBoxValues(Document):
    entity_value = StringField(regex=r'^[A-Za-z]+$')

TextBoxValues(entity_value="AZaz").save() # passes validation

TextBoxValues(entity_value="AZaz1").save() # raises ValidationError (String value did not match validation regex: ['entity_value'])

相关问题 更多 >

    热门问题