Mongodb Django Rest框架序列化失败:“MetaDict”对象没有属性“pk”

Mongodb Django Rest框架序列化失败:“MetaDict”对象没有属性“pk”,mongodb,mongoengine,django-rest-framework,Mongodb,Mongoengine,Django Rest Framework,我将Django Rest框架与MongoDB一起使用,我试图从MongoDB检索一个文档,然后将其序列化为json,以便将其发送回请求 我有一个如下所示的数据库模型: class TTest(Document): user_id = StringField() submission_status = StringField() 和相应的序列化程序: class TTestSerializer(serializers.ModelSerializer): class

我将Django Rest框架与MongoDB一起使用,我试图从MongoDB检索一个文档,然后将其序列化为json,以便将其发送回请求

我有一个如下所示的数据库模型:

class TTest(Document):
    user_id = StringField()
    submission_status = StringField() 
和相应的序列化程序:

class TTestSerializer(serializers.ModelSerializer):

    class Meta:
        model = models.TTest
        pk = "_id"
现在有了这些,我希望从DB中检索一个文档,并且我尝试完全按照关于使用Django Rest框架进行序列化的教程进行操作:

queryset = models.TTest.objects.filter(user_id='bbb')   # retrieving documents using mongoengine
serializer = TTestSerializer(queryset)
dt = serializer.data
print "DATA SERIALIZED: ", dt
当我运行这些行并尝试序列化时,返回以下错误:

AttributeError: 'MetaDict' object has no attribute 'pk'
理论上,我认为它应该可以工作,因为我在序列化程序的元数据中声明主键是_id…有人能帮我提个建议吗


谢谢

在序列化程序类中没有这样的选项“pk”,所以不会有任何影响

我对mongoengine了解不多,但如果对象不是标准的Django模型实例,我希望您需要使用普通的“Serializer”类,而不是“ModelSerializer”

在REST框架邮件列表中询问有关REST框架和mongoengine的问题是值得的,因为我知道还有其他人也在这样做


序列化程序类中没有这样的选项“pk”,所以这不会有任何影响

我对mongoengine了解不多,但如果对象不是标准的Django模型实例,我希望您需要使用普通的“Serializer”类,而不是“ModelSerializer”

在REST框架邮件列表中询问有关REST框架和mongoengine的问题是值得的,因为我知道还有其他人也在这样做


Mongoengine不是Django的ORM的直接替代品,因此可能无法与期望使用普通ORM的库进行本地集成


您可能希望尝试使用mongoengine。

mongoengine不是Django的ORM的直接替代品,因此可能无法与需要普通ORM的库进行本地集成


您可能希望尝试使用mongoengine。

请注意,django-tastypie-mongoengine是根据AGPLv3授权的。请注意,django-tastypie-mongoengine是根据AGPLv3授权的