[英]I'm not able to perform validation for the input data in my mongoengine model class
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)
我正在使用正則表達式參數來執行對我不起作用的驗證,它仍然接受任何格式的輸入,為什么?
提供給StringField(regex=)
實際上應該是一個字符串,但如果你給它一個編譯的正則表達式它也可以工作。
問題實際上是您的正則表達式。 正如@wiktor-stribiżew 在評論中所建議的那樣,它應該是regexp=r'^[A-Za-z]+$'
。
下面的最小示例表明正則表達式按預期工作
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'])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.