Как использовать select_related или prefetch_related с @property?

У меня есть модель с пользовательским свойством:

class Product(models.Model):
  name = models.CharField(_('Name'), max_length=255)
  [...]
  @property
    def price(self):
        return (self.price_line_product.filter(table__standard=True,
                                              table__client=self.client)
                .first().price)

Свойство price будет искать нужные данные в другой таблице. price_line_product для доступа к ней используется имя related_name.

Работает нормально, но у меня много SQL-запросов, которые выполняются. Я попытался в своем представлении добавить prefetch_related: Product.objects.filter(deleted=False).prefetch_related('price_line_product') Django не возвращает никакой ошибки, но и не изменяет количество запросов.

Как заставить ORM не делать дублирующие запросы?

Вернуться на верх