2013-01-23 57 views
6

我正在使用Django和MongoDB(作爲模型)的應用程序。我正嘗試使用從表單獲取的數據來初始化(手動)模型對象(以便將其進一步發送到另一個服務器)。該模型是這樣的:Django序列化爲JSON錯誤:'MetaDict'對象沒有屬性'concrete_model'

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是從表單接收的數據。 現在我想序列化到JSON這個對象(pilot_object)的文檔中描述:

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

,但我得到這個錯誤:

'MetaDict' 對象有沒有屬性 'concrete_model'

並且序列化失敗。

任何人都可以幫忙嗎?

+1

我有同樣的問題,並發現這是因爲我使用MongoEngine有不同的QuerySet對象。文檔在這裏:http://docs.mongoengine.org/en/latest/apireference.html#mongoengine.queryset.QuerySet –

+0

你有沒有找到任何解決方案? – Rahman

+0

不,我最近停止了尋找解決方案。 :( – Clara

回答

0

這是由於您使用的是舊版本的django。檢查1.31.4之間的差異,concrete_model僅適用於1.4和更高版本。

+4

我正在使用Django 1.6b4(最新的Beta版本),並且遇到同樣的問題,有什麼建議嗎? – Kurtis

+0

我正在使用1.5.5,但仍然有這個錯誤 – crizzwald

+0

我有同樣的問題。問題與Django 1.7.8 :( –

0

如果你有元{繼承:真}然後將其刪除。它正在尋找我認爲你沒有設計的具體課程,所以無論如何都不需要繼承爲真。它爲我工作。

相關問題