2013-02-18 66 views
1

我正在使用Django Rest框架和MongoDB,我试图从MongoDB中检索文档,然后将其序列化为json以便发送它回应了一个请求。Django Rest框架序列化失败:'MetaDict'对象没有属性'pk'

我有一个数据库模型,看起来像这样:

class TTest(Document): 
    user_id = StringField() 
    submission_status = StringField() 

和相应的串行:

class TTestSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = models.TTest 
     pk = "_id" 

现在有这些,我想检索数据库的文档,我试图完全按照使用Django Rest Framework的序列化教程:

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”串行的元数据中声明...任何人都可以帮我一个建议吗?

感谢

回答

4

有没有在串行类没有这样的选项“PK”,这样就不会有任何影响。

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

值得在REST框架邮件列表上询问有关REST框架和mongoengine的问题,因为我知道还有其他一些人也一直在做同样的事情。

https://groups.google.com/forum/?fromgroups#!forum/django-rest-framework

相关问题