0
我有一个客户端,Draftschedules,LineItems和Servers项目。Django Factory Boy迭代相关的父项
每个客户端有一个单一的DraftSchedule,每个Draftschedule有很多了LineItem
每个客户有许多服务器
每个LineItem有一台服务器
I有一些代码可以为随机数据生成每个DraftSchedule的LineItems。然而,导致了LineItem包含实际上不是由Draftschedule客户
class LineItemFactory(factory.django.DjangoModelFactory):
class Meta:
model = LineItem
line_item_type = factory.Iterator(LineItemType.objects.all())
draftschedule = factory.Iterator(DraftSchedule.objects.all())
servers = factory.Iterator(Server.objects.all()) # <----- Problem line
cost = factory.LazyAttribute(lambda x: faker.pydecimal(2, 2, positive=True))
detail = factory.LazyAttribute(lambda x: faker.sentence())
...
我想限制服务器的选择设置为只能由正在为创建于订单的Draftschedule的父客户端所拥有的服务器所拥有的服务器。
所以,当我打电话LineItemFactory()
它返回一个新的LineItem对象,我可以garantee上LineItem的服务器实际上是由与DraftSchedule
我尝试了以下相关的客户端拥有:
servers = factory.Iterator(lambda x: x.draftschedule.client.servers.all())
其中client.servers
是相关的名称,但功能没有可迭代的,所以我有点卡住
这是可能的,或者我应该从不同的角度解决这个问题?