これがシナリオです。Permissionというモデルがあります。次のようになっているとします。
class Permission(Document):
meta = {'collection': 'permission'}
permission = DictField()
owner = ReferenceField('user')
これは、mongoengine の Document クラスを継承しています。したがって、このインスタンスを保存すると、データベースに権限という名前のコレクションが自動的に作成されます。
コレクション名を動的に変更できるようにしたい。たとえば、連絡先モデルがあり、連絡先モデルのアクセス許可を保存したい場合、アクセス許可コレクションには入れたくありませんが、contact_permission という別のコレクションに保存します。
mongoengine には feature/dynamic_collection_naming ブランチを使用しました。これを機能させる方法がわかりません。私はこれを試しました:
p = Permission()
...
p.meta['collection'] = 'contact_permission'
p.save()
しかし、これはうまくいきません。助けてください。