私はDjangoを学ぼうとしていますが、私は困っているので助けが必要です。テンプレートタグを使用してmanytomanyモデルを反復処理する方法は?
私はどのように私が持っているタスクの各レベルのためのループを書く必要なく、私のすべてのモデルを反復することができますか?
例が、無限のサブタスク等:
タスク#1
1.1サブタスク#1
1.2サブタスク#2
1.2.1 Subsubtask#3
タスク#2
2.1サブタスク#4
。
。
。
。
私のモデルあなたがすべき
class task(models.Model):
name = models.CharField(max_length=100)
notes = models.TextField()
created = models.DateTimeField()
created_by = models.ForeignKey(User)
subtask = models.ManyToManyField('self')
マイテンプレート
{% for task in items %}
<li>{{ task.name }}
<ul>
{% for subtask in task.subtask.all %}
<li>{{ subtask.name }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
どのように私は、forループを無限にテンプレートタグを使用することができますダウンタスク
円のサブタスク上のポイント。それを使うのではなくカスタムタグを実装する方がいいのはなぜですか? – TanyaG
"with"の使用は、既にテンプレートコンパイラが無限に再帰するのを防ぐkung-fuのようなものです...さらに、Pythonはdjangoのテンプレート言語よりも強力な言語です。可能な限り)真剣なロジックを実装するために、sa無限再帰を防止する。訪問されたタスクまたは類似のものを収集する。 – schwobaseggl