Django的 - 排序预先过滤列表

我是一个真正的小白编程,我想,以确保这种做法是不够扎实。

我要筛选我的模型搜索结果,然后允许用户根据各种变量对结果进行排序。 我的想法是附加的过滤器变量作为GET参数排序链接(那么这将有唯一的排序变量)。

我看过其他网站和它好像有可能是一个更优雅的解决方案(不包含庞大的查询字符串)。

有没有更好的方法吗?

--------------解决方案-------------

为了避免查询字符串,您可以使用Django的URL路由。 那么面临的挑战将是生成你的链接相应的网址。

Django中有一个方便的网址模板标签。 你可以用它来确定您给出的URL的名称,URL和它的参数。

在你的urls.py你可能有这样的:

url(r'^sort/(\d{4})/(\d{2})/$', 'funkysort', name='funkysort'),

我使用的URL功能**在我的URLconf(urls.py),使其更容易说出我的网址。 我命名我的网址为{%URL%}模板标签的缘故。

在模板你可以然后做:

{% url funkysort 5 10 %}

和Django会产生这样的:

/mysite/sort/5/10/

**注:这是不是URL模板标签不同。 如果你想要做的URL模板标签相当于在你的代码,使用反向功能。

Django的管理使用像O = 3项指标,如果你想缩短。

你可以排序字段映射到一个索引或一个原本漂亮的名字。

sorts = {
0: 'field1',
1: 'field2',
2: 'field3',
}

qs = qs.order_by(sorts.get(request.GET.get('o'), 'id'))

你需要添加升/降代码,以及但是这只是一个简单的例子。

分类:Django的 时间:2015-03-15 人气:4
本文关键词: Django的,Django的过滤器
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.397 (s). 10 q(s)