Python 获取绝对url和url模板标记

Python 获取绝对url和url模板标记,python,django,url,Python,Django,Url,我想了解使用get_absolute_url调用而不是url模板标记有什么好处 获取绝对url: class Project(models.Model): @permalink def get_absolute_url(self): return ('view_project', (), {'project_id': self.pk}) <a href="{{ project.get_absolute_url }}"> {{ project.name }

我想了解使用get_absolute_url调用而不是url模板标记有什么好处

获取绝对url:

class Project(models.Model):

   @permalink
   def get_absolute_url(self):
       return ('view_project', (), {'project_id': self.pk})

<a href="{{ project.get_absolute_url }}"> {{ project.name }}</a>
<a href="{% url 'view_project' project.pk %}"> {{ project.name }}</a>
类项目(models.Model):
@permalink
def get_绝对_url(自身):
返回('view_project',(),{'project_id':self.pk})
url模板标记:

class Project(models.Model):

   @permalink
   def get_absolute_url(self):
       return ('view_project', (), {'project_id': self.pk})

<a href="{{ project.get_absolute_url }}"> {{ project.name }}</a>
<a href="{% url 'view_project' project.pk %}"> {{ project.name }}</a>

谢谢你的帮助


Julio

唯一明显的优点是,您可以更改该模型的url名称,而无需重写所有模板。此外,如果您定义了一个
get_absolute\u url
函数(不过,您不必在模板中使用它),这将提供一些额外的好处,比如在Django的管理中添加一个
站点视图
按钮,或者为基于类的模型表单视图提供一个回退成功url


但是,
get\u absolute\u url
和通常的模型url是一个很好的例子

如果只在一个地方(即模型中)有“定位”url,我发现在模板中管理所有url更容易。所以每次我需要一个与对象相关的url时,我都会使用get\u absolute\u url


但由于Django 1.5@permalink已被弃用,因此必须改用reverse()。请

我认为他是对的,你可以做很多事情来实现这个功能。。