django模板之循环嵌套

来源:互联网 发布:python shell变量互传 编辑:程序博客网 时间:2024/06/05 00:58

想在django下实现这么一功能。从数据库里获取所有分类,并显示每个分类下的内容。这里我们以友情链接来做。

首页友情链接有分类  models如下:

友情链接分类:

class FriendLinkcategory(models.Model):    Id = models.AutoField(primary_key=True)    Name = models.CharField(_(u"分类名称"),max_length=50)    def __unicode__(self):        return self.Name

友情链接:

class FriendLink(models.Model):    Id =  models.AutoField(primary_key=True)    Categoryid = models.ForeignKey(FriendLinkcategory,verbose_name="类别")    Sitename = models.CharField(_(u"网站名称"),max_length=80)    Siteurl = models.URLField(_(u"网站网址"),unique=True)    Sitelogo = models.CharField(_(u"网站logo"),max_length=300,blank=True, null=True)    Siteqq = models.CharField(_(u"QQ"),max_length=80,blank=True, null=True)    Email = models.EmailField(_(u"邮箱"),blank=True, null=True)    Status_list = (        (0, '待审'),        (1, '正常'),        (2, '过期'),        (3, '暂停'),        )    Status = models.SmallIntegerField(_(u"状态"),choices=Status_list,default=1)    def __unicode__(self):        return self.Sitename

在 views.py 里:

def main(request):    #分类list    linkcategorylist = FriendLinkcategory.objects.all()    return render_to_response("link.html",{"linkcategorylist":linkcategorylist})

html模板里代码:
{% for linkcategory in linkcategorylist %}        {{ linkcategory.Name }}        <br />        {% for link in linkcategory.friendlink_set.all|slice:"2" %}        <a href="{{ link.Siteurl }}" target="_blank">{{ link.Sitename }}</a>                {% endfor %}               {% endfor %}
这里的   friendlink_set 一定是和 链接分类相关联的 models 里的  friendlink 要首写大写 但  friendlink_set 这里的  friendlink 要小写  slice:"2"  是取前2条记录。

最后得到效果如图:


当然 这种方法也可以实现像新闻首页的这种效果:


原创粉丝点击