gpt4 book ai didi

python - Django 中的类别递归

转载 作者:行者123 更新时间:2023-11-28 23:05:26 25 4
gpt4 key购买 nike

好吧,我一直在到处寻找这个,但似乎无论如何都找不到优雅的做法。基本上我有一个 Category 模型,它有一个属于一本书的类别字段,然后是该类别的父级。

我正在尝试创建一个模板来显示:

父级 1

  • 类别 1
  • -- booka
  • -- 书b
  • 类别 2
  • --书本
  • --书本

父级 2

  • 类别 3
  • -- 书b
  • -- 预订

我的模型是:

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", blank=True, 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)

关于在我的 View /模板中执行此操作的最佳方式的任何想法?这只是一个基本的数据库浏览结构,但逆向查找属于 parent 的类别/书籍让我感到困惑。

最佳答案

<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>

关于python - Django 中的类别递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6179194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com