目的

组合搜索实现如下图功能

python&django 实现页面中关联查询小功能(中级篇)

知识点

1.使用自定义标签模板(templatetags)

实现

models.py 和 views.py和初级篇一样

重点如下:在app01目录下创建templatetags文件夹,并且创建一个.py文件,我创建了filter.py文件

 1 # 需要在模版中注册
 2 from django import template
 3 from django.utils.safestring import mark_safe
 4 register = template.Library()
 5 @register.simple_tag
 6 def filter_all(arg_dict,k):
 7     '''
 8     {% if arg_dict.article_type_id == 0 %}
 9 
10     {% else %}
11          <a href="/article-0-{{ arg_dict.category_id }}.html">全部</a>
12     {% endif %}
13     '''
14     ret = ""
15     if k == 'article_type_id':
16         n1 = arg_dict[k]
17         n2 = arg_dict['category_id']
18         if n1 == 0:
19             ret = '<a  class="active" href="/article-0-%s.html">全部</a>' % n2
20         else:
21             ret = '<a href="/article-0-%s.html">全部</a>' % n2
22     else:
23         n1 = arg_dict[k]
24         n2 = arg_dict['article_type_id']
25         if n1 == 0:
26             ret = '<a  class="active" href="/article-%s-0.html">全部</a>' % n2
27         else:
28             ret = '<a href="/article-%s-0.html">全部</a>' % n2
29 
30     return mark_safe(ret)
31 
32 @register.simple_tag
33 def filter_article_type(article_type_list,arg_dict,k):
34     '''
35      {% for row in article_type_list %}
36         {% if row.id == arg_dict.article_type_id %}
37         <a  class="active"  href="/article-{{ row.id }}-{{ arg_dict.category_id }}.html">{{ row.caption }}</a>
38         {% else %}
39         <a href="/article-{{ row.id }}-{{ arg_dict.category_id }}.html">{{ row.caption }}</a>
40         {% endif %}
41     {% endfor %}
42     '''
43     ret = []
44     for row in article_type_list:
45         if k=='article_type_id':
46             if row.id == arg_dict['article_type_id']:
47                 temp = '<a  class="active"  href="/article-%s-%s.html">%s</a>' % (row.id, arg_dict["category_id"], row.caption)
48             else:
49                 temp = '<a href="/article-%s-%s.html">%s</a>' % (row.id, arg_dict["category_id"], row.caption)
50         else:
51             if row.id == arg_dict['category_id']:
52                 temp = '<a  class="active"  href="/article-%s-%s.html">%s</a>' % ( arg_dict["article_type_id"],row.id, row.caption)
53             else:
54                 temp = '<a href="/article-%s-%s.html">%s</a>' % ( arg_dict["article_type_id"],row.id, row.caption)
55         ret.append(temp)
56     return mark_safe("".join(ret))
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-21
  • 2022-12-23
  • 2022-02-18
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-07
  • 2022-12-23
  • 2022-12-23
  • 2021-11-23
相关资源
相似解决方案