Wal*_*ini 3 django postgresql django-models
我正在使用 postgres 运行 django,我需要从表中查询一些记录,按等级对它们进行排序,并获得关于外键的唯一条目。
基本上我的模型是这样的:
class BookingCatalog(models.Model):
.......
boat = models.ForeignKey(Boat, verbose_name=u"Boat", related_name="booking_catalog")
is_skippered = models.BooleanField(u'Is Skippered',choices=SKIPPER_CHOICE, default=False)
rank = models.IntegerField(u"Rank", default=0, db_index=True)
.......
Run Code Online (Sandbox Code Playgroud)
这个想法是运行这样的东西
BookingCatalog.objects.filter (...).order_by ('-rank', 'boat', 'is_skippered').distinct ('boat')
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用,因为我使用的是 postgres,它引发了这个异常:
SELECT DISTINCT ON 表达式必须匹配初始 ORDER BY 表达式
我应该怎么做?
distinct 参数必须与一阶参数匹配。尝试使用这个:
BookingCatalog.objects.filter(...) \
.order_by('boat', '-rank', 'is_skippered') \
.distinct('boat')
Run Code Online (Sandbox Code Playgroud)