Mongoengine文档接受任何值作为BooleanField

时间:2019-02-13 10:22:07

标签: python boolean mongoengine

我定义了一个带一些布尔字段的mongoengine文档,并定义了2个操作。第一个包括文档创建,这是我从带有文档字段的JSON完成的。第二个是使用JSON文件以相同方式更新文档。

一个例子是:

class MyDocument
    boolean_field = BooleanField()
    other_field = StringField()

def create(dict):
    doc = MyDocument(**dict)
    doc.save()

def create(id, dict):
    doc = MyDocument.objects.with_id(id)
    for field_to_update, new_field_value in dict:
        setattr(doc, field_to_update, new_field_value)
    doc.save()

但是,如果我使用这些值创建文档:

{
    "boolean_field": "qwer",
    "other_field": "qwer"
}

{
    "boolean_field": 100,
    "other_field": "qwer"
}

文档已创建,但在更新操作中运行良好,不允许我将其他类型用作booleanField值。

这种不同行为的原因是什么?如何以与文档更新相同的方式使文档创建工作。

0 个答案:

没有答案