我有以下查询集:
MyModel.objects
.order_by("foreign_key_id")
.distinct("foreign_key_id")
.in_bulk(field_name="foreign_key_id")
foreign_key_id
在 MyModel
上不是唯一的,但考虑到 distinct
的使用在 QuerySet 中应该是唯一的。
但是当它运行时会出现以下错误:
"ValueError: in_bulk()'s field_name must be a unique field but 'foreign_key_id' isn't."
根据 in_bulk
上的 Django 文档 here应该可以通过这种方式将 in_bulk
与 distinct
一起使用。响应 this issue ticket here,该功能已添加到 Django .
我需要在此处更改什么才能使其正常工作?
我正在使用 Django3.1 和 Postgres11。
最佳答案
作为documentation of in_bulk(…)
说:
(…)
Changed in Django 3.2:
Using a distinct field was allowed.
由于您使用 django-3.1 , 因此这将不起作用,因此您必须将程序升级到 django-3.2 .
关于Django in_bulk() 使用 distinct() 引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68487020/