我的订单模型如下:
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 实例。
要执行您要查找的操作,没有这样的 group_by ,在您的位置,我会创建一个包含 2 个地址字段的所有唯一组合的列表,对于每个组,过滤相应的命令并使用 update()分配指定的 Bill 实例
您可以在文档中找到更多信息,特别是关于values()和distinct()的部分 https://docs.djangoproject.com/en/5.1/ref/models/querysets/
希望我的回答可以帮助解决您的问题