#python #mongoengine
#python #mongoengine
Вопрос:
Вот сенарио. У меня есть модель под названием Permission. Давайте предположим, что это выглядит так:
class Permission(Document):
meta = {'collection': 'permission'}
permission = DictField()
owner = ReferenceField('user')
Это наследуется от класса Document в mongoengine. Таким образом, когда я сохраняю экземпляр этого, в базе данных автоматически создается коллекция с именем permission.
Я хочу иметь возможность динамически изменять имя коллекции. Например, если у меня была модель контактов и я хотел сохранить разрешение для модели контактов, я не хочу, чтобы оно попадало в коллекцию разрешений, а сохранялось в отдельной коллекции под названием contact_permission.
Я использовал ветку feature/ dynamic_collection_naming для mongoengine. Я не могу понять, как заставить это работать. Я пробовал это:
p = Permission()
...
p.meta['collection'] = 'contact_permission'
p.save()
Но это не работает. Не могли бы вы мне помочь, пожалуйста.
Ответ №1:
Это не предназначенный API для динамического именования коллекций. Быстрый поиск по коммит в упомянутой вами ветке показывает этот коммит, который показывает, как его использовать:
https://github.com/hmarr/mongoengine/commit/c62b6321adaba6c3eb54ce2dc2c1bd3069568399
Комментарии:
1. Спасибо, приношу свои извинения за то, что не просмотрел коммиты.