如何为工厂男孩指定数据库?

2024-04-24 19:48:15 发布

您现在位置:Python中文网/ 问答频道 /正文

FactoryBoy似乎总是在默认数据库中创建实例。但我有以下问题。在

cpses = CanonPerson.objects.filter(persons__vpd=6,
                                   persons__country="United States").using("global")

代码指向global数据库。我还没有找到在工厂内指定数据库的方法:

^{pr2}$

Tags: 实例代码数据库objectsfilterglobalcountryunited
2条回答

现在通过在Meta上添加database属性直接支持这一点:

class CanonPersonFactory(django_factory.DjangoModelFactory):
    class Meta:
        model = CanonPerson
        database = 'global'

    ...

似乎Factory Boy没有从框中提供此功能,但您可以轻松地手动添加它:

class CanonPersonFactory(django_factory.DjangoModelFactory):
    class Meta:
        model = CanonPerson
    ...
    @classmethod
    def _get_manager(cls, model_class):
        manager = super(CanonPersonFactory, cls)._get_manager(model_class)
        return manager.using('global')
    ...

相关问题 更多 >