用它们各自的名称凝胶Many2Many中间表的所有值

时间:2019-06-20 16:10:36

标签: django

我具有以下数据库结构:

Products
--------
id name
1  prodA
2  prodB

Products_Invoices
-----------------
product_id Invoice_id
1             1
2             1

Invoices
--------
id name
1  InvA
2  InvB

哪种是检索Products_Invoices表的所有值但将其各自行的名称带到父表中的最正确方法。

1 个答案:

答案 0 :(得分:1)

自从您声明拥有

proftp.crt

您可以执行以下操作:

products = models.ManyToManyField('Product', blank=True) 

为了提高效率,您还可以使用prefetch_related预取发票的所有产品

invoices = Invoice.objects.all()

for invoice in invoices:
    for product in invoice.products.all():
        print(product.name)