我正在使用factoryboy来模拟一个类似下面的模型,我想知道是否有一种更干净的方法,不涉及复制所有字段。

class ShippingContainer(models.Model):
    weight = models.IntegerField(null=False)
    objects = models.IntegerField(null=False)
    serial_number = models.IntegerField(null=False)


class ShippingContainerFactory(DjangoModelFactory):
    class Meta:
        model = ShippingContainer

    weight = FuzzyInteger(0, 500)
    objects = FuzzyInteger(0, 500)
    serial_number = FuzzyInteger(0, 500)

如果factoryboy只是推导出模型字段的数值性质,而不需要工厂字段,比如
class ShippingContainerFactory(DjangoModelFactory):
    class Meta:
        model = ShippingContainer

这可能吗?

最佳答案

我不确定你是否能在factory中做到这一点。但你可以用model_mommy
安装妈妈模型。

$ pip install model_mommy

创建一个虚拟模型。
from model_mommy import mommy
from your_app.models import ShippingContainer

dummy_shipping_container = mommy.make('ShippingContainer')

10-06 00:53