django模板之循环嵌套

想在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条记录。

最后得到效果如图:


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


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lanlandechong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值