django在父模板中引用子项

时间:2014-09-15 13:14:01

标签: python django django-templates

我正在尝试从父模板中获取属于父项的子项列表。

到目前为止我的代码:

models.py

class Parent(models.Model):
    name = models.CharField()

    def get_child(self):
        return self.children_set.all()

class Child(models.Model):
    parent = models.ForeignKey(Parent, related_name='children')
    name = models.CharField()

parent.html

{% for parent in parents %}

        <tr>
            <td><a href="/parent/get/{{ parent.id }}/">{{ parent.id }}</a></td>
            <td><a href="/parent/get/{{ parent.id }}/">{{ parent.name }}</a></td>
            <td><a href="/parent/get/{{ parent.id }}/">{% for child in parent %} <li>{{ child.get_child.name }}</li>{% endfor %}</a></td>
        </tr>
{% endfor %}

1 个答案:

答案 0 :(得分:3)

get_child()中您不需要Parent方法。 Parent的孩子可以parent.children.all()获得。

将模板更新为

<td><a href="/parent/get/{{ parent.id }}/">
   {% for child in parent.children.all %} 
      <li>{{ child.name }}
      </li>
   {% endfor %}
</a></td>