Я определил документ 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.
В чем причина такого различного поведения и как я могу заставить создание документа работать так же, как документы обновляются.