Django模板:访问FK方法

时间:2014-03-31 21:12:05

标签: django templates foreign-key-relationship

下午好,

我希望能够显示来自外表中的方法的返回值(模板obj共享一对多的关系):

models.py

class teacher(stuff):
    name = models.charfield()
    website = models.URLField()
    slug = models.SlugField(max_length=255, db_index=True, unique=True)

    def get_page_url(self):
        return reverse('teacher_page', args=[self.slug])


class homework(stuff):
    assignment = models.ForeignKey(teacher)
    due_date = models.DateField()
    other assignment stuff..

我将赋值对象传递给我的模板,并且可以像这样访问它的属性:

{{homework.due_date}}

但是让我们说我想显示分配了作业的老师的页面。我以为我应该能够像这样访问它:

<a href='{{homework.teacher_set.get_page_url}}'>teacher page</a>

但这只会导致属性错误。

我如何获取网址?

注意:此示例是为了传达问题而动态编写的。没有语法巨魔!

1 个答案:

答案 0 :(得分:1)

由于这是一种前瞻性关系,你只需要做

{{homework.assignment.get_page_url}}

此外,如果您正在寻找反向外键关系,您可以

{{teacher.name}}

{% for homework in teacher.homework_set.all %}
    {{homework.due_date}}
{% endfor %}

因为teacher.homework_set returns a Manager