2

私はMongoDBでDjangoRestFrameworkを使用しており、MongoDBからドキュメントを取得し、それをjsonにシリアル化して、リクエストに応じて返送しようとしています。

私は次のようなデータベースモデルを持っています:

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

および対応するシリアライザー:

class TTestSerializer(serializers.ModelSerializer):

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

これらができたので、DBからドキュメントを取得したいと思います。そして、DjangoRestFrameworkを使用したシリアル化に関するチュートリアルに正確に従うようにしました。

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

2 に答える 2

0

Mongoengine は Django の ORM を直接置き換えるものではないため、通常の ORM を期待するライブラリとネイティブに統合できない場合があります。

mongoengine で動作するように作成されたhttp://django-tastypie-mongoengine.readthedocs.org/en/latest/を試してみてください。

于 2013-02-20T14:38:21.740 に答える