限制mongoengine中ListField的长度
Limit length of ListField in mongoengine
我可以在没有 if
条件的情况下限制 mongoengie 中 ListField
数据的长度吗?
我需要这样的东西:
list = db.ListField(IntField(), max_length = 24)
在我的 document
.
或者我必须在更新列表时检查列表的长度,如果列表的长度大于 24,则不更新它!
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')
我可以在没有 if
条件的情况下限制 mongoengie 中 ListField
数据的长度吗?
我需要这样的东西:
list = db.ListField(IntField(), max_length = 24)
在我的 document
.
或者我必须在更新列表时检查列表的长度,如果列表的长度大于 24,则不更新它!
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')