2014-09-05 50 views
3

我正在使用factoryboy來模擬下面的模型,我不知道是否有一種更簡潔的方式,不涉及複製所有字段。Factoryboy Django model with default fuzzyfields

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 

這可能這將是很好?

+1

但FactoryBoy如何知道整數需要在0到500之間? – 2014-09-05 22:52:33

+0

如果默認值是整數域的範圍,或者在超級聰明的世界中,我會好的。Factoryboy可以反省模型中聲明的選項。 – bwarren2 2014-09-06 00:35:06

回答

3

我不確定你是否可以在factory這樣做。但你可以在一行中做到這一點model_mommy

Install model_mommy。

$ pip install model_mommy 

創建一個虛擬模型。

from model_mommy import mommy 
from your_app.models import ShippingContainer 

dummy_shipping_container = mommy.make('ShippingContainer')