Django 模型工厂获取或创建
Django Model Factory get or create
我有一个如下定义的 Django 模型:
class CustomModel(models.Model):
column = models.CharField(max_length=50, unique=True)
为模型定义工厂
from factory_boy import DjangoModelFactory
class CustomModelFactory(DjangoModelFactory):
column = 'V1'
FACTORY_FOR = CustomModelFactory()
我如何确保工厂实施 get_or_create 而不是每次都创建?
有人知道怎么做吗?
实现这个的方法是按如下方式构建你的工厂class:
class CustomModelFactory(DjangoModelFactory):
class Meta:
django_get_or_create = ('column',)
column = 'V1'
FACTORY_FOR = CustomModel
他们使用 get_or_create 而不是创建的方法是将 "FACTORY_DJANGO_GET_OR_CREATE" 添加到将用于获取的字段列表中:
class UserFactory(factory.django.DjangoModelFactory):
class Meta:
model = 'myapp.User' # Equivalent to ``model = myapp.models.User``
django_get_or_create = ('username',)
因此在您的示例中,它看起来像这样:
class CustomModelFactory(DjangoModelFactory):
class Meta:
model = CustomModel
django_get_or_create = ('column',)
我有一个如下定义的 Django 模型:
class CustomModel(models.Model):
column = models.CharField(max_length=50, unique=True)
为模型定义工厂
from factory_boy import DjangoModelFactory
class CustomModelFactory(DjangoModelFactory):
column = 'V1'
FACTORY_FOR = CustomModelFactory()
我如何确保工厂实施 get_or_create 而不是每次都创建?
有人知道怎么做吗?
实现这个的方法是按如下方式构建你的工厂class:
class CustomModelFactory(DjangoModelFactory):
class Meta:
django_get_or_create = ('column',)
column = 'V1'
FACTORY_FOR = CustomModel
他们使用 get_or_create 而不是创建的方法是将 "FACTORY_DJANGO_GET_OR_CREATE" 添加到将用于获取的字段列表中:
class UserFactory(factory.django.DjangoModelFactory):
class Meta:
model = 'myapp.User' # Equivalent to ``model = myapp.models.User``
django_get_or_create = ('username',)
因此在您的示例中,它看起来像这样:
class CustomModelFactory(DjangoModelFactory):
class Meta:
model = CustomModel
django_get_or_create = ('column',)