django regroup的相关知识点
django regroup 可以让你在django template 里按照分组的逻辑来显示数据,这对我们要按照归类的方式来显示
数据非常的好,比如我们想在模板里显示:
一个国家:
一个国家所包括的城市
另外一个国家:
另外一个国家包括的城市
假如我们的model是这样设计的:
class Info(models.Model):
country = models.CharField('国家', max_length=50)
num = models.CharField('国家代号', max_length=50)
city = models.CharField('所在城市', max_length=50)
而我们根据这个model设计出来的表的结构是:
id country num city
1 china 001 beijing
2 china 002 shanghai
3 china 003 chongqing
4 us 005 New York
...
那我们想得到下面的结果:
china:
001
002
003
us:
005
那要怎么实现呢,请你继续往下看代码把:
view.py:
info = Info.objects.all()
return render_to_response('city.html', {'info':info})
上面的view不用直接进行逻辑处理,只要直接把数据给模板就可以。
现在关键看看template模板的处理把:
{% regroup info by country as grouped %}
-
{% for country in grouped %}
- {{ country.grouper }}
-
{% for c in country.list %}
- {{ c.num }} {% endfor %}
{% endfor %}
希望上面的讲解让你对django regroup有一个比较好的理解,希望你下次要实现某种功能的时候能用到,没事的时候可以
看看django 教程
哦!
原创文章请注明转载自老王python
,本文地址:http://www.cnpythoner.com/post/112.html