Как правильно использовать prefetch_related или select_related для достижения этой цели в django

эй ребята у меня есть эти модели

class Category(models.Model):
    name = models.charfield()
class Product(models.Model):
    category = models.ForeginKey(Category)
    ......
class Order(models.Model):
    product = models.ForeigKey(Product)

я хочу получить продукт и категорию продукта из экземпляра заказа в одном запросе, я знаю, что для прямого иностранного ключа нужно использовать select related, но я не думаю, что есть способ получить категорию продукта, когда вы используете это:

Order.objects.all().select_related('product')

Так правильно ли использовать этот тогда:

Order.objects.all().prefetch_related('product__category')

Since the relation from Order to Product is a many-to-one relation, and that of Product to Category is a many-to-one relation, you fetch these both through .select_related(…) [Django-doc]:

Order.objects.select_related('product__category')

Вы можете выстраивать цепочки отношений в вызове select_related с двойным подчеркиванием

Order.objects.all().select_related('product__category')
Вернуться на верх