Django rest framework 如何在django中缓存queryset
我有三种型号Django rest framework 如何在django中缓存queryset,django-rest-framework,Django Rest Framework,我有三种型号 class ManagerOrder(models.Model): order = models.OneToOneField(Order, on_delete=models.CASCADE, primary_key=True) kam = models.ForeignKey(KeyAccountManager, on_delete=models.PROTECT) @property def quantity(self): retu
class ManagerOrder(models.Model):
order = models.OneToOneField(Order, on_delete=models.CASCADE, primary_key=True)
kam = models.ForeignKey(KeyAccountManager, on_delete=models.PROTECT)
@property
def quantity(self):
return OrderData.objects.filter(order_id = self.order.id) \
.aggregate(Sum('quantity'))['quantity__sum']
class Order(models.Model):
order_data = models.ManyToManyField('anotherapp', through='OrderData', related_name='+')
class OrderData(models.Model):
quantity = models.FloatField()
现在我试图得到每个订单的总数量,但它一次又一次地调用OrderData模型(N+1问题)。我读到了与预回迁相关的内容,并将其放在了我的观点中
queryset = models.KeyAccountManagerOrder.objects.all().prefetch_related('order__order_data')
但它仍然一次又一次地调用OrderData模型