2017-05-05 13 views
1

私はMongoDBのORMレイヤーとしてPyModmを使ってDjango CRUDアプリケーションを使用しています。PyMODM - ドキュメントを見つける

私はそうのようにMongoModelを作成:作成するには

class Book(MongoModel): 
    title = fields.CharField(primary_key=True) 
    author = fields.CharField() 

と更新がpymodmのAPIを文書化は本当に良いですが、私はブックとして、1つ以上の文書を取得するための簡単な方法を見つけることができませんでした。 object.all()は、それを反復処理するときにJson-serializableにしか見えないQuerySetを返します。

だから、私が見つけた回避策は

books = [] 
for book in Book.objects.all(): 
    books.append({ 
     'title': book.title, 
     'author': contact.author 
    }) 
return JsonResponse(books) 

され、それによって1冊の本を取得するための主キーです:

for book in Book.objects.raw({'_id': title}): 
    book = { 
     'author': book.author, 
     'title': book.title 
    } 
return JsonResponse(book) 

しかし、これは非常に十分でもきれいな方法ではないようです。もっと良い方法はありますか?

答えて

0

たぶんvalues()は役立ちます:

books = list(Book.objects.values().all()) 
book = Book.objects.values().get({'_id': user_id}) 
+0

うんOK、これはそれが動作素晴らしいです。 _clsプロパティ(project.mongoModels.Book)でdictを返しますが、次のようにフィルタリングすることができます: Book.objects.only( 'title'、 'author')。values()。get() {'_id': 'asd'}) – Kemeia

関連する問題