Гель все значения промежуточной таблицы Many2Many с соответствующим именем - PullRequest
0 голосов
/ 20 июня 2019

У меня следующая структура базы данных:

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 Ответ

1 голос
/ 20 июня 2019

Так как вы заявили, что у вас есть

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

Вы можете сделать следующее:

invoices = Invoice.objects.all()

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

Для повышения эффективности вы также можете предварительно выбрать все продукты для счета-фактуры, используя prefetch_related

 invoices = Invoice.objects.all().prefetch_related('products')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...