首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Django数据迁移上下文中访问模型的自定义管理器?

如何在Django数据迁移上下文中访问模型的自定义管理器?
EN

Stack Overflow用户
提问于 2019-02-01 22:58:52
回答 3查看 437关注 0票数 2

我在我的几个模型中使用了一个自定义模型管理器。此管理器有助于加快数据库插入速度。我需要执行数据迁移,这涉及到迁移数百万条记录/对象。在我的数据迁移中,我需要我的自定义管理器。有谁知道怎么弄到它吗。在数据迁移上下文中,如果我运行model.objects,就会返回Django的模型管理器。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-02-18 17:59:15

到目前为止,我使用的方法是为模型实例化一个本地管理器,然后将管理器的模型属性设置为我感兴趣的模型:

代码语言:javascript
复制
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()
票数 2
EN

Stack Overflow用户

发布于 2020-05-12 01:20:11

还可以使用管理器的use_in_migrations attribute (docs):

代码语言:javascript
复制
class MyManager(models.Manager):
    use_in_migrations = True

class MyModel(models.Model):
    objects = MyManager()
票数 1
EN

Stack Overflow用户

发布于 2019-02-01 23:54:52

为什么不直接导入模型呢?

代码语言:javascript
复制
from myproj.models import MyModel
MyModel.objects.filter(field=value).update(field=new_value)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54481979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档