我是否可以使用与预取多个模型相关的预取?

2024-05-16 03:07:28 发布

您现在位置:Python中文网/ 问答频道 /正文

在我看来,我需要预取相关数据,以便以后从模板中读取

soproduct = SOproduct.objects.select_related('product__material').prefetch_related(
        Prefetch(
            'product__material__bomversion_set',
            queryset=BOMVersion.objects.default().active(),
            to_attr='default_active_bomversions'
        )
    )

我以前从未使用过用户预取,它是从stackoverflow上的一个答案获得的。你知道吗

但是,是否可以预取多个表?你知道吗

我还有另外一个表内容,我也想在同一个模板中显示,以便在soproduct和BOM的每个组合附近显示生产订单中的相关值

    @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)

Tags: 模板falsetruedefaultisonmodelsprotect
1条回答
网友
1楼 · 发布于 2024-05-16 03:07:28

是的,只需在条目之间添加注释。你知道吗

我以前从未使用过Prefetch对象,只需按如下方式使用Prefetch\u:

soproduct = SOproduct.objects.select_related('product__material').prefetch_related(
                 'product__material__bomversion_set',
                 'second_table',
                 'third_table__fourth_table'
                  )

相关问题 更多 >