2013-02-18 64 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

相關問題