1

私はモデル「ポスト」を持っています:

class Post(db.Document):
    created_at = db.DateTimeField(default=datetime.datetime.now, required=True)
    title = db.StringField(max_length=255, required=True)
    slug = db.StringField(max_length=255, required=True)
    body = db.StringField(required=True)

Post オブジェクトを使用して変数を作成すると仮定しpostますが、それを保存する前に、デフォルト (Post) 以外のコレクション名に保存します。次に例を示します。

post._meta['collection'] = "customcollection"
post.save();

次に、 mongoengineを使用してcustomcollection内のすべてのドキュメントを取得するにはどうすればよいですか?

通常、 customcollectionを設定しなかった場合、次のようなことができます。

for item in Post.objects:
    print item.title

しかし、customcollectionを設定したので、次のようなことができるようにしたい:

for item in customcollection.objects:
    print item.title

私は得るが:

NameError: global name 'customcollection' is not defined

customcollection内のすべての Post オブジェクトをフェッチできるようにするには、構文で何をする必要がありますか?

4

1 に答える 1

2

Postドキュメントクラスがこれを行うことを指すようにしたい場合customcollection

class Post(db.Document):
    created_at = db.DateTimeField(default=datetime.datetime.now, required=True)
    title = db.StringField(max_length=255, required=True)
    slug = db.StringField(max_length=255, required=True)
    body = db.StringField(required=True)
    meta = {'collection': 'customcollection'}

今あなたがするとき:

for item in Post.objects:
    print item.title

customcollectionコレクションから投稿を読み取る必要があります。

于 2012-08-09T03:22:52.180 に答える