1 from django importtemplate2 from django.utils.safestring importmark_safe3 register =template.Library()4
5
6 @register.simple_tag7 deffilter_all(arg_dict, k):8 '''
9 逻辑:对两种类型的索引显示"全部"时添加高亮10 {% if arg_dict.article_type_id == 0 %}11 全部12 {% else %}13 全部14 {% endif %}15 :param arg_dict: 视图函数中的kwarg字典,如:{'category_id': '2', 'article_type_id': '1'}16 :param k: 前端组合索引的两种分类:1.article_type_id 2.category_id17 :return: 返回a标签18 '''
19 ret = ''
20 if k == 'article_type_id':21 if arg_dict['article_type_id'] ==0:22 ret = '全部' % arg_dict['category_id']23 else:24 ret = '全部' % arg_dict['category_id']25 elif k == 'category_id':26 if arg_dict['category_id'] ==0:27 ret = '全部' % arg_dict['article_type_id']28 else:29 ret = '全部' % arg_dict['article_type_id']30 returnmark_safe(ret)31
32
33 @register.simple_tag34 deffilter_article_type(arg_dict, g, h):35 """
36 逻辑:37 {% for row in article_type_list %}38 {% if row.id == arg_dict.article_type_id %}39 {{ row.caption }}40 {% else %}41 {{ row.caption }}42 {% endif %}43 {% endfor %}44 :param arg_dict:45 :param g: article_type_list、category_list这两个列表,用于循环生成标签46 :param h: article_type_list、category_list这两个列表的字符串形式传参,流程控制47 :return:很多a标签48 """
49 a =[]50 for row ing:51 if h == 'article_type_list':52 if row[0] == arg_dict['article_type_id']:53 s = '%s' % (row[0], arg_dict['category_id'], row[1])54 else:55 s = '%s' % (row[0], arg_dict['category_id'], row[1])56 a.append(s)57 elif h == 'category_list':58 if row.id == arg_dict['category_id']:59 s = '%s' % (row.id, arg_dict['article_type_id'], row.caption)60 else:61 s = '%s' % (arg_dict['article_type_id'], row.id, row.caption)62 a.append(s)63 ret = ''.join(a)64 return mark_safe(ret)