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 - 如何在 Django 中使用 Pusher?

Django 模板访问嵌套数据

python - Django 模型中的对象总数

python - 以下片段是什么意思

python - Django 管理员 : How to get all values from 2 models with same FK

python - Django - 是否可以在 Count() 中执行查询集

Django:如何像在分页中那样将查询参数添加到查询集中?

javascript - 将渲染的 Django 模板与其他一些项目一起放入 Json 中

Django 管理站点未显示 CSS 样式

Django从日期时间开始按日期分组