蒙古包验证列表内的字典



如何验证desc字段是必需的,category字段是可选的?

class Mydoc(Document):
    structure = {
        "name": unicode,
        "items": [{
             "category": int,
             "desc": unicode
        }]
    }
 required_fields = ["name", "items", "items.desc"] # Error: items has no attribute 
                                                   # desc, it is a list not a dict.

如何验证列表中的类别?

https://groups.google.com/forum/?fromgroups= !主题/mongokit GP5AgaMG6T4

这里的棘手之处在于我们不知道有多少项。Mongokit不允许您根据需要指定嵌套对象,因为如果您有许多项,它可能会非常慢。

所以,简而言之,mongokit不允许required_fields和default_values在嵌套对象中。

然而,Mongokit非常轻,如果需要,可以非常容易地定制:

class MyDoc(Document):
    structure = {
        "name": unicode,
        "items": [{
             "category": int,
             "desc": unicode
        }]
    }
    def validate(self, *args, **kwargs):
        super(MyDoc, self).validate(*args, **kwars)
        for item in self["items"]:
            assert item["desc"], "desc is required: %s" % item

最新更新