如何在 django ORM 中进行分组

问题描述 投票:0回答:1

我的订单模型如下:

class Order(models.Model):
    bill = models.ForeignKey(Bill, on_delete=models.PROTECT, null=True, blank=True)
    address_from = models.ForeignKey(Address, on_delete=models.PROTECT)
    address_to = models.ForeignKey(Address, on_delete=models.PROTECT)

如何将其中的查询集分组并在每个组中进行迭代,如下所示:

bill = models.Bill.objects.get(pk=1)
groups = models.Order.objects.all().group_by('address_from', 'address_to')

for group in groups:
    group.update(bill = bill)

重点是为具有相同地址 from 和 address to 的每组订单分配一个特定的 Bill 实例。

python sql django django-models django-orm
1个回答
0
投票

要执行您要查找的操作,没有这样的 group_by ,在您的位置,我会创建一个包含 2 个地址字段的所有唯一组合的列表,对于每个组,过滤相应的命令并使用 update()分配指定的 Bill 实例

您可以在文档中找到更多信息,特别是关于values()和distinct()的部分 https://docs.djangoproject.com/en/5.1/ref/models/querysets/

希望我的回答可以帮助解决您的问题

© www.soinside.com 2019 - 2024. All rights reserved.