0
我正在使用django-pagination和django-sorting来合并我的一个观点。这两个都有自定义中间件进行排序和分页。那么在这种情况下中间件的顺序是重要的呢?django-sorting和django-pagination:中间件订单
我正在使用django-pagination和django-sorting来合并我的一个观点。这两个都有自定义中间件进行排序和分页。那么在这种情况下中间件的顺序是重要的呢?django-sorting和django-pagination:中间件订单
在这种情况下,顺序并不重要:
page
和sort
and dir
变量。所以这两个只是填充请求对象与他们的变量。如果例如其中一些需要django.auth框架,则顺序很重要:认证使用框架必须在'django.contrib.auth.middleware.AuthenticationMiddleware'之后等。
Django中间件类很容易阅读,所以看来源,帮助了很多:-)了解正在发生的事情。
非常感谢。但我有点困惑。那么真正的分类在哪里发生?我们只需加载生成所需请求参数的模板标签。我们不改变视图中的查询集代码,但它仍然有效!在这种情况下,实际的查询执行发生在哪里? – Konstant
看起来像排序发生在模板标签中。查看[template tag code]中的SortedDataNode(https://github.com/directeur/django-sorting/blob/master/django_sorting/templatetags/sorting_tags.py) – sandinmyjoints
正如William指出的,排序发生在SortedDataNode上下文中[key] = value.order_by(order_by)'[line 99](https://github.com/directeur/django-sorting/blob/master/django_sorting/templatetags/sorting_tags.py#L99)。 – jazz