use*_*935 1 django django-models factory-boy
我有一个 Django 模型,定义如下:
class CustomModel(models.Model):
column = models.CharField(max_length=50, unique=True)
Run Code Online (Sandbox Code Playgroud)
为模型定义工厂
from factory_boy import DjangoModelFactory
class CustomModelFactory(DjangoModelFactory):
column = 'V1'
FACTORY_FOR = CustomModelFactory()
Run Code Online (Sandbox Code Playgroud)
我如何确保工厂每次都实现 get_or_create 而不是创建?
有谁知道如何做到这一点?
根据工厂文档:https : //factoryboy.readthedocs.io/en/latest/orms.html#factory.django.DjangoOptions.django_get_or_create
他们使用 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',)
Run Code Online (Sandbox Code Playgroud)
所以在你的例子中,这看起来像这样:
class CustomModelFactory(DjangoModelFactory):
class Meta:
model = CustomModel
django_get_or_create = ('column',)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3292 次 |
| 最近记录: |