我有一个如下定义的Django模型
class CustomModel(models.Model):
column = models.CharField(max_length=50, unique=True)
为模型定义工厂
class CustomModelFactory(DjangoModelFactory):
column = 'V1'
FACTORY_FOR = CustomModel
我如何确保工厂每次都实现get_or_create而不是create? 有谁知道如何做到这一点?
答案 0 :(得分:0)
实现此目的的方法是将Factory类构造为
children
答案 1 :(得分:0)
使用get_or_create代替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',)