在table的<th>加上<a>標(biāo)簽實(shí)現(xiàn)根據(jù)字段的排序皮获,給<a>標(biāo)簽url一個(gè)參數(shù) o 赞草,在視圖中調(diào)用排序方法根據(jù)參數(shù)o得到字段蝴乔,再使用 order_by(field) 得到新的 model_list 返回給前端
- 注意
想實(shí)現(xiàn)字段的倒序挣棕,只要在 o 參數(shù)前加上 - 歇攻,根據(jù)判斷可以實(shí)現(xiàn)正序倒序的來(lái)回切換
@register.simple_tag
def table_header_column_sort(column, orderby_key,filter_condtions):
ele = ''
o = '' # 保存orderby_key 最終的值
item = '' # 保證在檢索后還能進(jìn)行排序固惯,不加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只能刪除字符串的頭尾字符,默認(rèn)刪除空格與換行
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)