gpt4 book ai didi

python - 如何使用 django-treebeard 构建站点地图?

转载 作者:太空宇宙 更新时间:2023-11-03 15:26:23 30 4
gpt4 key购买 nike

我已经设置了一个 django-treebeard 模型,它有子节点等等。我现在如何在我的模板中显示它?这就是我到目前为止所拥有的。

我的模型:

class SiteMapEntry(MP_Node):
name = models.CharField(max_length=100, null=False, blank=False)
url = models.CharField(max_length=1000, null=False, blank=False)

node_order_by = ['name']

class Meta:
verbose_name = "Sitemap Entry"
verbose_name_plural = "Sitemap Entries"

def __unicode__(self):
return ('%s - %s' % (self.name, self.url))

我的观点:

from django.views.generic import ListView
class SiteMap(ListView):
model = SiteMapEntry
template_name = 'sitemaps.html'

我的模板:

{% block content %}
<h1>Sitemap</h1>

<br /><br />

{% for url in object_list %}
<p>{{ url.name }}</p>
<p>{{ url.url }}</p>
{% endfor %}

{% endblock content %}

现在所做的显然只是列出节点及其子节点,没有任何缩进。如何在模板中将其像树一样列出?

最佳答案

您可以使用 get_annotated_list 节点方法来获取可在模板中迭代的数据结构:

http://django-treebeard.readthedocs.io/en/stable/api.html#treebeard.models.Node.get_annotated_list

还有一个示例向您展示了具体操作方法:

{% for item, info in annotated_list %}
{% if info.open %}
<ul><li>
{% else %}
</li><li>
{% endif %}

{{ item }}

{% for close in info.close %}
</li></ul>
{% endfor %}
{% endfor %}

看看 dump_bulk 方法,它也返回嵌套数据结构:

http://django-treebeard.readthedocs.io/en/stable/api.html#treebeard.models.Node.dump_bulk

希望对您有帮助。

关于python - 如何使用 django-treebeard 构建站点地图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43104944/

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