Chinaunix首页 | 论坛 | 博客
  • 博客访问: 337697
  • 博文数量: 148
  • 博客积分: 2745
  • 博客等级: 少校
  • 技术积分: 1704
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-30 14:59
文章分类

全部博文(148)

文章存档

2013年(97)

2012年(7)

2011年(3)

2010年(41)

我的朋友

分类: Python/Ruby

2012-08-08 21:33:15

django regroup 可以让你在 里按照分组的逻辑来显示数据,这对我们要按照归类的方式来显示
数据非常的好,比如我们想在模板里显示:

一个国家:
一个国家所包括的城市

另外一个国家:
另外一个国家包括的城市


假如我们的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有一个比较好的理解,希望你下次要实现某种功能的时候能用到,没事的时候可以
看看 哦!

原创文章请注明转载自 ,本文地址:

阅读(1253) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~