Как получить доступ к пользовательскому менеджеру моей модели в контексте миграции данных Django? - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть собственный менеджер моделей, используемый в нескольких моих моделях.Этот менеджер помогает ускорить вставку БД.Мне нужно выполнить миграцию данных, и это включает в себя миграцию нескольких миллионов записей / объектов.Мне нужен мой собственный менеджер в моей миграции данных.Кто-нибудь знает, как это получить.В контексте миграции данных, если я запускаю model.objects, это возвращает мне менеджер моделей Django.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

На данный момент я использую подход, который, похоже, работает надежно, заключается в создании экземпляра локального менеджера для модели, а затем в атрибуте модели менеджера для интересующей меня модели:

class MyManager(Manager):
    ...
    def my_create_func(self):
        ...

class MyModel(Model):
    ...
    objects = MyManager()

def data_migration(apps, schema_editor):
    model = apps.get_model(...)
    manager = MyManager()
    manager.model = model
    manager.my_create_func()
0 голосов
/ 01 февраля 2019

Почему бы просто не импортировать вашу модель?

from myproj.models import MyModel
MyModel.objects.filter(field=value).update(field=new_value)
...