在table的<th>加上<a>标签实现根据字段的排序,给<a>标签url一个参数 o ,在视图中调用排序方法根据参数o得到字段,再使用 order_by(field) 得到新的 model_list 返回给前端
- 注意
想实现字段的倒序,只要在 o 参数前加上 - ,根据判断可以实现正序倒序的来回切换
@register.simple_tag
def table_header_column_sort(column, orderby_key,filter_condtions):
ele = ''
o = '' # 保存orderby_key 最终的值
item = '' # 保证在检索后还能进行排序,不加item检索条件就莫得了
for k,v in filter_condtions.items():
if v:
item += '&%s=%s'%(k,v)
if orderby_key:
if '-' in orderby_key:
o = orderby_key.strip('-') # strip只能删除字符串的头尾字符,默认删除空格与换行
else:
o = '-%s'%orderby_key
if orderby_key and orderby_key.strip('-') == column:
ele +='<th><a href="?o=%s%s">%s</a></th>'%(o, item, column)
else:
ele += '<th><a href="?o=%s%s">%s</a></th>'%(column, item, column)
return mark_safe(ele)
网友评论