私は店を持っており、この店にはオファーがあります。このリストのアイテムを 5 個購入すると、オファーの 1 つが提供されます。3 米ドルの割引が適用されます。クエリを書いてみました。
しかし、うまくいきませんでした
o=order_products.objects.filter(order__id=1).values('product').annotate(Sum('qty'))
offers.objects.filter(products__id__in=o.values('product_id')).distinct(True)
このアイテムのリストの数量を一致させて、この割引または倍数にする方法はありますか
たとえば、5 個購入した場合は 3 米ドルの割引が適用され、10 個購入した場合は 6 米ドルの割引が適用されます。
class product(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=255)
price=models.FloatField()
class order(models.Model):
id = models.AutoField(primary_key=True)
order_date = models.DateTimeField(auto_now=True)
class order_products(models.Model):
product=models.ForeignKey(product)
qty=models.IntegerField()
order=models.ForeignKey(order)
class offers(models.Model):
id = models.AutoField(primary_key=True)
products = models.ManyToManyField(product)
qty = models.FloatField()
discount_amount=models.FloatField()