下面是我的Tag模型类中使用的方法 get_absolute_url():
def get_absolute_url(self):
return reverse('post_by_tag', args=[self.slug])
下面是我在模板中访问它的方式:
<a href="{{ tag.get_absolute_url }}">{{ tag }}</a>
工作正常。但是,如果我在模型文件和模板文件中将其更改为类似 get_abs()的方法名称,则它仍然有效。
由于我可以使用自定义方法,所以我只想知道是否有特定原因使用get_absolute_url()作为获取URI的方法名称。还是只是一个约定?
我正在使用Python 3.6.6和Django 2.1。
答案 0 :(得分:1)
使用特定名称get_absolute_url
的原因是Django中有各种内置功能,如果提供了该名称,它们将使用该名称。 generic editing class-based views中就是一个示例,该方法将用作成功保存后重定向到的目标。
另一个示例是在管理员中,对象更改页面上的'view on site' link将使用该方法(如果存在)。