在我看来,我是一个预取相关数据,以便稍后从模板中读取
soproduct = SOproduct.objects.select_related('product__material').prefetch_related(
Prefetch(
'product__material__bomversion_set',
queryset=BOMVersion.objects.default().active(),
to_attr='default_active_bomversions'
)
)
我以前从未使用过prefetch,而是从stackoverflow上的一个答案中获取。
但是可以预取多个表吗?
我有另一个表格内容,我也希望在同一个模板中显示所以在soproduct和BOM的每个组合附近我想显示来自Production_order的相关值
@with_author
class Production_order(models.Model):
version = IntegerVersionField( )
creation_time = models.DateTimeField(auto_now_add=True, blank=True)
BOM = models.ForeignKey(BOM, on_delete=models.PROTECT)
soproduct = models.ForeignKey(SOproduct, on_delete=models.PROTECT)
agent = models.ForeignKey(User, on_delete=models.PROTECT)
quantity_order = models.DecimalField(max_digits=19, decimal_places=3)
is_active = models.BooleanField(default=True)
is_production= models.BooleanField(default=False)
is_prepared = models.BooleanField(default=False)
is_picked = models.BooleanField(default=False)
production_notes = models.TextField(null=True, blank=True)
inventory_notes = models.TextField(null=True, blank=True)
答案 0 :(得分:1)
是的,只需在条目之间添加注释即可。
之前我从未使用过Prefetch对象,只需使用prefetch_related,如下所示:
soproduct = SOproduct.objects.select_related('product__material').prefetch_related(
'product__material__bomversion_set',
'second_table',
'third_table__fourth_table'
)