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



我有以下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文档,应该可以通过这种方式将in_bulkdistinct一起使用。Django在这里添加了这个功能来回应这个问题。

我需要在这里更改什么才能使其工作?

我正在将Django3.1与Postgres11一起使用。

正如in_bulk(…)的文档所说:

(…(

在Django 3.2中更改

允许使用不同的字段。

由于您使用django-3.1,因此这将不起作用,因此您将不得不将程序升级到django-3.2。

最新更新