[英]How to specify the database for Factory Boy?
FactoryBoy似乎總是在默認數據庫中創建實例。 但我有以下問題。
cpses = CanonPerson.objects.filter(persons__vpd=6,
persons__country="United States").using("global")
代碼指向global
數據庫。 我還沒有找到在工廠中指定數據庫的方法:
class CanonPersonFactory(django_factory.DjangoModelFactory):
class Meta:
model = CanonPerson
django_get_or_create = ('name_first', 'p_id')
p_id = 1
name_first = factory.Sequence(lambda n: "name_first #%s" % n)
@factory.post_generation
def persons(self, create, extracted, **kwargs):
if not create:
# Simple build, do nothing.
return
if extracted:
# A list of groups were passed in, use them
for person in extracted:
self.persons.add(person)
看起來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')
...
現在可以通過在Meta
上添加database
屬性來直接支持:
class CanonPersonFactory(django_factory.DjangoModelFactory):
class Meta:
model = CanonPerson
database = 'global'
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.