[英]How to limit the max deep of recursetree in Django mttp?
I'm using django-mttp.我正在使用 django-mttp。 How can I limit the max depth of
recursetree
?如何限制
recursetree
的最大深度? Max=3最大=3
Model: Model:
class Comment(MPTTModel):
"""评论表"""
nid = models.AutoField(primary_key=True)
news = models.ForeignKey(
verbose_name="评论文章",
to="News",
to_field="id",
on_delete=models.CASCADE,
)
user = models.ForeignKey(
verbose_name="评论者",
to="User",
to_field="id",
on_delete=models.CASCADE,
)
content = models.CharField(verbose_name="评论内容", max_length=255)
create_time = models.DateTimeField(verbose_name="创建时间", auto_now_add=True)
parent = TreeForeignKey(
"self",
on_delete=models.CASCADE,
null=True,
blank=True,
related_name="children",
)
class MPTTMeta:
order_insertion_by = ["create_time"]
Template :模板:
<ul>
{% recursetree comments_list %}
<li>
{{ node.content }}
{{ node.level }}
{% if node.parent %}
<div>{{node.user}} 回复 {{node.parent.user}}</div>
{% endif %}
<button class="button" onclick="myFunction({{node.id}})"> Reply </button>
{% if not node.is_leaf_node %}
<ul class="children list-item">
{{ children }}
</ul>
{% endif %}
</li>
{% endrecursetree %}
</ul>
Every instance of MPTTModel
has a level
attribute that can be used to limit the depth to recurse to. MPTTModel
的每个实例都有一个level
属性,可用于限制递归到的深度。 Just edit the recursive template to not show levels above a certain depth:只需编辑递归模板以不显示高于特定深度的级别:
<ul>
{% with max_depth=3 %}
{% recursetree comments_list %}
<li>
{% if not node.is_leaf_node and node.level < max_depth %}
<ul>{{ children }}</ul>
{% endif %}
</li>
{% endrecursetree %}
{% endwith %}
</ul>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.