限制mongoengine中ListField的长度

时间:2015-03-11 07:10:16

标签: python mongodb limit mongoengine listfield

我可以在没有ListField条件的情况下限制mongoengie中if数据的长度吗?

我需要这样的东西:

list = db.ListField(IntField(), max_length = 24)

在我的document

或者我必须在更新时检查列表的长度,如果我的列表长度大于24,则不要更新它!

1 个答案:

答案 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')