微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django中的类别递归

如何解决Django中的类别递归

| 好的,我到处都在寻找这个东西,而且似乎找不到找到它的优雅方法。基本上,我有一个“类别”模型,该模型具有一本书所属的类别字段,然后是该类别的父级。 我正在尝试创建一个模板来显示: 父母1 类别1 - 预约一个 -书架 类别2 -书本 --bookc 父母2 类别3 -书架 -已预订 我的模型是:
class Category(models.Model):
        category = models.CharField(max_length=20)
        parent = TreeForeignKey(\'self\',blank=True,null=True,related_name=\'children\')
class Book(models.Model):
        bookname=models.CharField(_(\'bookname\'),max_length=255)
        author=models.CharField(_(\'author\'),max_length=255)
        manufacturer=models.CharField(_(\'manufacturer\'),max_length=255)
        description=models.TextField(_(\'description\'),blank=True)
        coverart = models.ImageField(upload_to=\"coverart\",null=True)
        adder=models.ForeignKey(User,related_name=\"added_models\",verbose_name=_(\'adder\'))
        added=models.DateTimeField(_(\'added\'),default=datetime.Now)
        category=models.ForeignKey(Category,related_name=\'cat\')
        content=models.TextField(blank=True)
在我的视图/模板中是否有关于最佳方法的想法?它只是一个基本的数据库浏览结构,但是反向查找属于父级的类别/书籍会使我感到困惑。     

解决方法

        
<ul>
{% for parent in categories %}
    <li>{{ parent.category }}
        <ul>
        {% for category in parent.children.all %}
        <li>{{ category.category }}
            <ul>
            {% for book in category.book_set.all %}
                <li>{{ book.bookname }}</li>
            {% endfor %}
            </ul>
        </li>
        {% endfor %}
        </ul>
    </li>
{% endfor %}
</ul>
    ,        尝试使用django mptt,他可以帮助您在数据库上创建树结构。很有用 他有一些模板标签可以帮助创建html     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。