【发布时间】:2018-05-08 13:14:46
【问题描述】:
假设您有这些以这种方式关联的 Django 模型:
class Service:
restaurant = models.ForeignKey(Restaurant)
hist_day_period = models.ForeignKey(DayPeriod)
class DayPeriod:
restaurant = models.ForeignKey(Restaurant)
我想使用工厂创建一个Service 对象。它应该创建所有 3 个模型,但使用 same 餐厅。
使用此代码:
class ServiceFactory(factory.django.DjangoModelFactory):
class Meta:
model = Service
restaurant = factory.SubFactory('restaurants.factories.RestaurantFactory')
hist_day_period = factory.SubFactory(
'day_periods.factories.DayPeriodFactory', restaurant=restaurant)
工厂男孩将创建 2 家不同的餐厅:
s1 = ServiceFactory.create()
s1.restaurant == s1.hist_day_period.restaurant
>>> False
知道如何做到这一点吗?我不清楚是否应该使用 related factors 而不是 SubFactory 来完成此操作。
【问题讨论】:
标签: python django unit-testing factory factory-boy