如何设置创建一个可以提供以下结果的集合的查询:
-Parent1
-Child1
-Subchild1
-Subchild2
-Child2
-Subchild3
-Parent2
-Child3
我现在尝试了一段时间,但我没有到达那里。如果问题出在视图或模板中,我甚至都不确定。
型号:
class Parent(models.Model):
name = models.CharField(max_length=255)
def __str__(self):
return self.name
class Child(models.Model):
project = models.ForeignKey(Parent, on_delete=models.CASCADE)
subchild = models.ForeignKey('self', null=True, blank=True, on_delete=models.CASCADE)
name = models.CharField(max_length=255)
def __str__(self):
return self.name
基本查询没有给我我想要的结果。只与孩子一起工作。
Views.py:
def template(request):
parents = Parent.objects.all()
context = {'parents':parents}
return render(request, 'myapp/template.html', context)
Template.html:
<ul>
{% for parent in parents %}
<li>{{ parent.name }}</li>
<ul>
{% for child in parent.child_set.all %}
<li>{{ child.name }}</li>
<ul>
{% for subchild in child.subchild_set.all %}
<li>{{ subchild.name }}</li>
{% endfor %}
</ul>
{% endfor %}
</ul>
{% endfor %}
</ul>