【问题标题】:MSSQL - DISTINCT ON fields is not supported by this database backendMSSQL - 此数据库后端不支持 DISTINCT ON 字段
【发布时间】:2022-01-19 08:53:00
【问题描述】:

我有这个表格

class FromToForm(Form):
   ModelChoiceField(queryset=TblWorkPlace.objects.all().distinct('work_place_name'))

Django 写下这个错误信息:

DISTINCT ON fields is not supported by this database backend

有什么解决方法吗?

【问题讨论】:

  • 如果您想获取唯一值,为什么不使用 ChoiceField 而不是 ModelChoiceField? ModelChoiceField 的重点在于它允许您通过 pk 选择整行,这与按 work_place_name 分组不一致

标签: django django-forms


【解决方案1】:

distinct('field_name') 在 MySQL 中不受支持。它只支持 distinct()

当您想测试时,MySQL 很好,但生产中的大多数(如果不是全部)数据库不使用 Mysql,而是使用 Postgres。

使用 Postgres 的好处是您可以解锁 Django 专门为 Postgres 提供的许多特殊功能。

【讨论】:

  • MySQL != MSSQL.
猜你喜欢
  • 2019-06-12
  • 2020-05-01
  • 2015-04-13
  • 1970-01-01
  • 2014-02-28
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多