我可以在没有ListField
条件的情况下限制mongoengie中if
数据的长度吗?
我需要这样的东西:
list = db.ListField(IntField(), max_length = 24)
在我的document
。
或者我必须在更新时检查列表的长度,如果我的列表长度大于24,则不要更新它!
答案 0 :(得分:4)
ListField
内置了这样的内容,但您可以使自定义ListField
提供max_length
属性:
class MyListField(ListField):
def __init__(self, max_length=None, **kwargs):
self.max_length = max_length
super(MyListField, self).__init__(**kwargs)
def validate(self, value):
super(MyListField, self).validate(value)
if self.max_length is not None and len(value) > self.max_length:
self.error('Too many items in the list')