下午好,
我希望能够显示来自外表中的方法的返回值(模板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>
但这只会导致属性错误。
我如何获取网址?
注意:此示例是为了传达问题而动态编写的。没有语法巨魔!
答案 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