2013-01-23 11 views
6

DjangoとMongoDBを(モデルとして)使用するアプリケーションで作業しています。フォームから取得したデータを使用してモデルオブジェクトを(別のサーバーに送信するために)初期化(手作業で)しようとしています。JSONへのDjangoシリアル化エラー: 'MetaDict'オブジェクトに 'concrete_model'属性がありません

self.dataは、フォームから受信したデータである
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) 

を:私は次のことをやっている形で

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)をJSONにシリアライズしたい:

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

が、私はこのエラーを取得:

'MetaDict' オブジェクトには属性 'concrete_model'

を持っていません

となり、シリアル化が失敗します。

誰でも手助けできますか?

+1

私は同じ問題を抱えています。それは、異なるQuerySetオブジェクトを持つMongoEngineを使用しているためです。ここのドキュメント: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(現在利用可能な最新のベータ版)を使用していて、同じ問題が発生しました。何か提案がありますか? – Kurtis

+0

私は1.5.5を使用していますが、まだこのエラーがあります。 – crizzwald

+0

私は同じですDjango 1.7.8の問題:( –

0

{Inheritance:True}のメタがある場合は削除します。それは、私があなたが設計されていると考えている具体的なクラスを探しているので、継承の必要性は、とにかくTrueである必要はありません。それは私のために働いた。

関連する問題