-
$效果图:

image.png

image.png

image.png

image.png
-
获取当前url
image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png
- 代码的实现(所修改了的代码):
- urls.py
from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^article-(?P<article_type_id>\d+)-(?P<category_id>\d+).html',views.article,name='article'),
]
- views.py
from django.shortcuts import render
from app01 import models
def article(request,*args,**kwargs):
# print(request.path_info) # 获取当前url
# from django.urls import reverse
# # 通过name生成我们制定的url
# url = reverse('article',kwargs=kwargs) # 这里是当前urls的(name)名字
# print(url)
print(kwargs) # {'article_type_id':'1','category_id':'2'}
# 判断是否是零
conditon = {}
for k,v in kwargs.items():
kwargs[k] = int(v)
if v == '0':
pass
else:
conditon[k] = v
artilce_type_list = models.ArticleType.objects.all()
category_list = models.Category.objects.all()
# c = {'article_type_id':'1','category_id':'2'}
result = models.Article.objects.filter(**conditon)
return render(
request,
'article.html',
{
'result':result,
'artilce_type_list':artilce_type_list,
'category_list':category_list,
'arg_dict':kwargs
}
)
- article.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.condition a{
display: inline-block;
padding:3px 5px;
border:1px solid #dddddd;
margin: 5px;
}
.condition a.active{
background-color: brown;
}
</style>
</head>
<body>
<h1>过滤条件</h1>
<div class="condition">
<div>
{% if arg_dict.article_type_id == 0 %}
<a class="active" href="/article-0-{{ arg_dict.category_id }}.html">全部</a>
{% else %}
<a href="/article-0-{{ arg_dict.category_id }}.html">全部</a>
{% endif %}
{% for row in artilce_type_list %}
{# 做判断,当一个标签被选中时,与其他标签颜色不同#}
{% if row.id == arg_dict.article_type_id %}
<a class="active" href="/article-{{ row.id }}-{{ arg_dict.category_id }}.html">{{ row.caption }}</a>
{% else %}
<a href="/article-{{ row.id }}-{{ arg_dict.category_id }}.html">{{ row.caption }}</a>
{% endif %}
{% endfor %}
</div>
<div>
{% if arg_dict.category_id == 0 %}
<a class="active" href="/article-{{ arg_dict.article_type_id }}-0.html">全部</a>
{% else %}
<a href="/article-{{ arg_dict.article_type_id }}-0.html">全部</a>
{% endif %}
{% for row in category_list %}
{# 如果相等就...#}
{% if row.id == arg_dict.category_id %}
<a class="active" href="/article-{{ arg_dict.article_type_id }}-{{ row.id }}.html">{{ row.caption }}</a>
{% else %}
<a href="/article-{{ arg_dict.article_type_id }}-{{ row.id }}.html">{{ row.caption }}</a>
{% endif %}
{% endfor %}
</div>
</div>
<h1>查询结果</h1>
<ul>
{% for row in result %}
<li>{{ row.id }} - {{ row.title }}</li>
{% endfor %}
</ul>
</body>
</html>
