Django in_bulk() 使用 distinct() 引发错误

标签 django django-models django-queryset

我有以下查询集:

MyModel.objects
.order_by("foreign_key_id")
.distinct("foreign_key_id")
.in_bulk(field_name="foreign_key_id")

foreign_key_idMyModel 上不是唯一的,但考虑到 distinct 的使用在 QuerySet 中应该是唯一的。

但是当它运行时会出现以下错误:

"ValueError: in_bulk()'s field_name must be a unique field but 'foreign_key_id' isn't."

根据 in_bulk 上的 Django 文档 here应该可以通过这种方式将 in_bulkdistinct 一起使用。响应 this issue ticket here,该功能已添加到 Django .

我需要在此处更改什么才能使其正常工作?

我正在使用 Django3.1 和 Postgres11。

最佳答案

作为documentation of in_bulk(…)说:

(…)

Changed in Django 3.2:

Using a distinct field was allowed.

由于您使用 , 因此这将不起作用,因此您必须将程序升级到 .

关于Django in_bulk() 使用 distinct() 引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68487020/

相关文章:

Django:返回 values_list 的字典列表?

python - 如何将 django 查询集中的实例总和附加到该查询集中?

python - 导入错误 : No module named books. 型号

python - 如何在使用 django social_auth 登录 google oauth 后打开原始页面

python - 如何在 Django 中使用 Python 函数扩展 SQLite?

python - 模型实例上的 Django 引用管理器和相关管理器

python - django 无法渲染表单

python - 导入错误 : No module named modelsinspector

python - 使用最大值过滤数据

django - 在 Django 中检查空查询集