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

posted @ 2012-08-08 21:11  老王python  阅读(373)  评论(0编辑  收藏  举报