gpt4 book ai didi

django distinct 和 order_by

转载 作者:行者123 更新时间:2023-12-03 10:14:10 25 4
gpt4 key购买 nike

Foo.objects.all().distinct('foo')不会删除重复项
Foo.objects.all().order_by().distinct('foo')确实删除它们。

我有 Meta.ordering = ('-field1', '-field2)

是否Foo.objects.all().order_by().distinct('foo')尊重 Meta.ordering?
即我想要由 Meta.ordering 排序的不同值,但不知道如何去做。

Django 文档令人困惑,没有说明如何 order_by()没有任何争论的作品。

顺便说一句,我正在使用 postgresql 9.3。

In [28]: BestMomsdiaryThread.objects.all().values_list('momsdiary_thread__id', flat=True)
Out[28]: [3390, 5877, 5884, 6573, 5880, 6576, 6576, 6576, 6576, 6576, 6576, 6576, 6576, 6576, 6576, 6576, 6576, 6576, 6576, 6576, '...(remaining elements truncated)...']

In [29]: BestMomsdiaryThread.objects.not_deleted().order_by().distinct('momsdiary_thread').values_list('momsdiary_thread__id', flat=True)
Out[29]: [3390, 5877, 5880, 5884]

In [30]: BestMomsdiaryThread.objects.not_deleted().values_list('momsdiary_thread__id', flat=True)
Out[30]: [3390, 5877, 5884, 5880, 5877, 5880, 5884, 3390]


In [32]: BestMomsdiaryThread.objects.not_deleted().order_by('momsdiary_thread').distinct('momsdiary_thread').values_list('momsdiary_thread__id', flat=True)

ProgrammingError: SELECT DISTINCT ON expressions must match initial ORDER BY expressions
LINE 1: SELECT DISTINCT ON ("momsplanner_bestmomsdiarythread"."momsd...


^

最佳答案

来自 https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.order_by

If you don’t want any ordering to be applied to a query, not even the default ordering, call order_by() with no parameters.

关于django distinct 和 order_by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21621879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com