使用排序引导模板标签和引导类排序模板api。
django-sorting-bootstrap的Python项目详细描述
django排序引导
django sorting bootstrap是一个可插入的小型api,可以轻松地为Django模板中的查询集、链接和表头添加排序。还有一个新的标记,它使用Bootstrap的布局创建用于排序表的标题。
安装
要安装django-sorting-bootstrap,只需运行:
pip install django-sorting-bootstrap
配置
在已安装的应用程序中包括排序引导
将{%load sorting_tags%}放在模板顶部。
您的模板有四个可用标记:
自动排序 排序链接 排序 排序标题
基本用法:
{% auto_sort queryset %} {% sort_link "link text" "field_name" %} {% sort_th "link text" "field_name" %} {% sort_headers simpleschangelist %}
自动排序
它对queryset进行就地排序,并用排序后的queryset替换queryset。
这需要在从QuerySet获取切片之前调用。 (切片取下后无法进行排序)尤其是 不能使用常规视图对象列表。
基本用法:
{% auto_sort queryset %}
排序链接
排序链接输出将在给定字段上排序的链接。要排序的字段应该是 一个数据库字段,或者用queryset的排序的东西。
基本用法:
{% sort_link "link text" "field_name" %}
示例用法:
{% sort_link "Name" "name" %}
它也可用作:
{% sort_link "link text" "field_name" "vis_name" %} {% sort_link "Name" "name" "what" %}
如果您不想在url中公开数据库字段,这将非常有用。
排序
它的工作方式与sort_link相同,但区别在于输出模板使用Bootstrap类和glyphicons呈现表头标记<;th>;。
基本用法:
{% sort_th "link text" "field_name" %}
排序标题
这个函数使用起来有点复杂,但它构建了整个表头以进行排序。为了使用它,您必须在视图中传递一个simpleChangeList(来自sorting_bootstrap.views)。 让我们举一个使用视图扩展泛型listview的例子。
基本用法:
from django.views.generic import ListView class MyView(ListView) def get_context_data(self, **kwargs): # Calls the base implementation first to get a context context = super(self.__class__, self).get_context_data(**kwargs) from sorting_bootstrap.views import SimpleChangeList # Gets the fields that are going to be in the headers list_display = [i.name for i in self.model._meta.fields] # Doesnt show ID field list_display = list_display[1:] cl = SimpleChangeList(self.request, self.model, list_display) # Pass a change list to the views context['cl'] = cl
您还需要调用模板中的函数:
<thead> <tr> {% sort_headers cl %} </tr> </thead>
学分
这个应用程序基于agiliq的django-sorting0.1。与之相比,它有两个改进:新标签和twitter bootstrap遵从性思想。