Помогает ли prefetch или select_related при использовании @свойства модели
У меня есть такая модель:
class Order(Model):
...
@property
def all_shipments_shipped(self):
return all([shipment.is_shipped for shipment in self.shipments.all()])
class Shipment(Model):
...
order = ForeignKey(Order, related_name='shipments', on_delete=SET_NULL, null=True)
@property
def is_shipped(self):
return (calculate if shipped based on tracking status)
и такой набор представлений:
@action(methods=['GET'], detail=False, url_path='num_not_shipped')
def num_not_shipped(self, request):
qs = self.request.user.orders.all()
num_orders_not_shipped = len([i for i in qs if not i.all_shipments_shipped])
return Response(num_orders_not_shipped, status=status.HTTP_200_OK)
Добавить
qs = qs.select_related('shipments')
перед num_orders_not_shipped =... во вьюсе поможет то, что отгрузка используется в свойстве модели, а не в самом вьюсе?
Спасибо за помощь