如何删除 Django 中的模型元排序或从内置管理器获取原始查询集?

Guy*_*den 2 django django-models

我有一个模型,它使用元排序属性来确保使用它的所有视图以相同的顺序显示内容。

但是,我有一种方法需要使用该distinct()方法 - 这在应用排序后不起作用。是否有一种内置方法可以在应用排序之前检索原始查询集,或者我是否需要编写一个自定义管理器类来允许我执行此操作。

小智 5

order_by()之前调用distinct()不带参数。

\n\n

来自: https: //docs.djangoproject.com/en/1.5/ref/models/querysets/#order-by

\n\n
\n

如果您不想\xe2\x80\x99 不希望将任何排序应用于查询,甚至不需要默认排序,请调用不带参数的 order_by() 。

\n
\n\n

只需进行快速测试即可发现,如果Foomodel.objects.order_by().distinct(\'bar\')正确执行,则会删除所有ORDER BY子句,甚至是 Foomodel 的 Meta 中定义的子句。

\n