如何验证我的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
答案 0 :(得分: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