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视频教程

相关文章: