我在我的几个模型中使用了一个自定义模型管理器。此管理器有助于加快数据库插入速度。我需要执行数据迁移,这涉及到迁移数百万条记录/对象。在我的数据迁移中,我需要我的自定义管理器。有谁知道怎么弄到它吗。在数据迁移上下文中,如果我运行model.objects,就会返回Django的模型管理器。
发布于 2019-02-18 17:59:15
到目前为止,我使用的方法是为模型实例化一个本地管理器,然后将管理器的模型属性设置为我感兴趣的模型:
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()发布于 2020-05-12 01:20:11
还可以使用管理器的use_in_migrations attribute (docs):
class MyManager(models.Manager):
use_in_migrations = True
class MyModel(models.Model):
objects = MyManager()发布于 2019-02-01 23:54:52
为什么不直接导入模型呢?
from myproj.models import MyModel
MyModel.objects.filter(field=value).update(field=new_value)https://stackoverflow.com/questions/54481979
复制相似问题