簡體   English   中英

我無法對 mongoengine 模型類中的輸入數據執行驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM