django排序和django分页:中间件顺序

django排序和django分页:中间件顺序,django,django-pagination,Django,Django Pagination,我使用和一起作为我的一个观点。它们都有自定义的中间件来排序和分页。在这种情况下,中间件的顺序重要吗?在这种情况下,顺序并不重要: django分页查找变量和 django排序查找变量 所以两者都只是用它们的变量填充请求对象。如果其中一些需要django.auth框架,则顺序问题:auth-using框架必须位于'django.contrib.auth.middleware.AuthenticationMiddleware'等后面 Django中间件类很容易阅读,因此查看源代码有助于了解发生了

我使用和一起作为我的一个观点。它们都有自定义的中间件来排序和分页。在这种情况下,中间件的顺序重要吗?

在这种情况下,顺序并不重要:

  • django分页查找变量和
  • django排序查找变量
所以两者都只是用它们的变量填充请求对象。如果其中一些需要django.auth框架,则顺序问题:auth-using框架必须位于'django.contrib.auth.middleware.AuthenticationMiddleware'等后面


Django中间件类很容易阅读,因此查看源代码有助于了解发生了什么。

在这种情况下,顺序并不重要

  • django分页查找变量和
  • django排序查找变量
所以两者都只是用它们的变量填充请求对象。如果其中一些需要django.auth框架,则顺序问题:auth-using框架必须位于'django.contrib.auth.middleware.AuthenticationMiddleware'等后面


Django中间件类很容易阅读,因此查看源代码有助于了解发生了什么。

非常感谢。但我有点困惑。那么实际的排序发生在哪里呢?我们只加载生成所需请求参数的templatetags。我们没有在视图中更改queryset代码,但它仍然有效!!!在这种情况下,实际的查询执行发生在哪里?看起来排序发生在模板标记中。查看中的SortedDataNode,正如William指出的,排序发生在SortedDataNode
context[key]=value.order\u by(order\u by)
。感谢大家的解释。我还有最后一个疑问。通过使用排序和分页,我是否能够保留惰性queryset行为?理想情况下,排序和分页应该一起工作,如本文所述。在这种情况下,这种行为会被保留吗?如何检查?您可以使用django_debug_工具栏测试在呈现页面时执行哪些SQL语句。非常感谢。但我有点困惑。那么实际的排序发生在哪里呢?我们只加载生成所需请求参数的templatetags。我们没有在视图中更改queryset代码,但它仍然有效!!!在这种情况下,实际的查询执行发生在哪里?看起来排序发生在模板标记中。查看中的SortedDataNode,正如William指出的,排序发生在SortedDataNode
context[key]=value.order\u by(order\u by)
。感谢大家的解释。我还有最后一个疑问。通过使用排序和分页,我是否能够保留惰性queryset行为?理想情况下,排序和分页应该一起工作,如本文所述。在这种情况下,这种行为会被保留吗?如何检查?您可以使用django_debug_工具栏测试在呈现页面时执行哪些SQL语句。