7

我正在开发一个使用 Django 和 MongoDB(作为模型)的应用程序。我正在尝试使用从表单中获取的数据(手动)初始化模型对象(以便将其进一步发送到另一台服务器)。该模型如下所示:

class MyModel(DynamicDocument):
    study_name = StringField(default="first study")
    individual_name = StringField(default="individual")
    file_list = ListField(StringField)   # this is a list of paths to some files

在表格中,我正在执行以下操作:

pilot_object = MyModel()
pilot_object.individual_name = self.data['individual_name']
pilot_object.study_name = self.data['study_name']
pilot_object.file_list = files_list #file paths (strings)

其中 self.data 是从表单接收到的数据。现在我想按照文档中的描述将此对象(pilot_object)序列化为 JSON:

data_serialized = serializers.serialize('json', [pilot_object, ])

但我收到此错误:

'MetaDict' 对象没有属性 'concrete_model'

并且序列化失败。

任何人都可以帮忙吗?

4

3 回答 3

1

是的,对于 mongoengine 文档,使用 -- 'from rest_framework_mongoengine import serializers' 而不是 from rest_framework import serializers。并且序列化器类应该继承 DocumentSerializer。

于 2020-07-28T02:34:26.667 回答
0

如果你有元{Inheritance:True}然后删除它。它正在寻找我认为您没有设计的具体类,因此无论如何都不需要继承为 True。它对我有用。

于 2017-03-06T11:03:02.197 回答
-1

这是由于您使用的是旧版本的 django。检查1.31.4之间的区别,concrete_model仅适用于 1.4 及更高版本。

于 2013-04-30T08:28:22.140 回答