【发布时间】:2023-03-29 08:02:01
【问题描述】:
我正在尝试过滤订单以获取给定月份和年份中销量最高的披萨。 这是目前的代码,但我不知道如何配置它,所以它会根据我输入的月份和年份进行搜索,而不是固定的。
例如,如果我将查询键入为 03 月和 2021 年,那么我应该得到我的对象。我该如何做到这一点?
Fecha 是模型中定义为 fecha = models.DateField(auto_now_add=True) 的日期
obj = Order.objects.filter(fecha__month=month, fecha__year=year).annotate(Max('pizzas__cant')).order_by('-pizzas__cant__max').first()
这是模型:
class Pizzas(models.Model):
nombre = models.CharField(max_length=100, unique=True)
cant = models.IntegerField(default=0)
def __str__(self):
return self.nombre
class Pedido(models.Model):
fecha = models.DateField(auto_now_add=True)
email = models.EmailField(max_length=200, null=True)
telefono = models.IntegerField(null=True)
pizzas = models.ManyToManyField('Pizzas', related_name='pedidos', blank=True)
cantidad = models.IntegerField(default=0)
def __str__(self):
return self.email
【问题讨论】:
-
你能把你的模型添加到问题中
-
你有
year变量,对吧? -
@JPG 就是这样,我不知道。我想要的是使用“fecha”中的年份和月份,这是我的日期字段,这样我就可以输入月份和年份并获取我的对象。
-
@IainShelvington 我添加了它。
-
@satoru 你能更清楚你想要的输出是什么吗?给定年份和月份,您想返回在该时间范围内售出次数最多的
Pizzas对象?