from_json
mongoengine
的方法ModelClass
用于:
将json数据转换为未保存的文档实例
如果我向服务器json发送一些已更改的字段并尝试转换为未保存的文档实例,则他们不会跟踪模型中的_changed_fields
,例如_changed_fields
始终为空。
data = self.request.data # json representation of object
model_instance = SomeModel.from_json()
print(model_instance._changed_fields) # get empty list
据我所知,ModelInstance的.save
方法只保存已更改的字段并在_changed_fields
属性中进行检查。因此,如果此属性始终为空 - 无法保存通过from_json
方法创建的模型实例。
问题 - 如何保存从json创建的模型实例?
答案 0 :(得分:1)
你不能这样做吗?
data = self.request.data
model_instance = SomeModel(**data)
print(model_instance._changed_fields) # should not be empty
model_instance.save() # should work
<强>说明:强>
在python中,如果函数或类接受参数(args)和命名参数(kwargs),可以分别从list / tuple(my_list)和字典(my_dict)中填充它们。
要求:
示例:
def foo(a, b, c=None, d=1):
pass
class Foo(object):
def __init__(self, a, b, c=None, d=1):
pass
my_list = [1, 2]
my_dict = {'c': 3, 'd': 4}
你可以这样做:
test = foo(*my_list, **my_dict)
或
obj = Foo(*my_list, **my_dict)
我希望它有所帮助。