0

如何验证我的 desc 字段是必需的,而我的类别字段是可选的?

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=#!topic/mongokit/GP5AgaMG6T4

4

1 回答 1

2

这里的棘手点是我们不知道有多少项目。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
于 2013-03-18T15:45:03.940 回答