from django.db.models import permalink
def get_absolute_url(self):
"""Construct the absolute URL for this Item."""
return ('project.app.views.view_name', [str(self.id)])
get_absolute_url = permalink(get_absolute_url)
您也可以直接调用reverse:
from django.core.urlresolvers import reverse
def get_absolute_url(self):
"""Construct the absolute URL for this Item."""
return reverse('project.app.views.view_name', None, [str(self.id)])
如果需要在代码中使用类似于
{% url %}
模板标记的东西,Django提供了django.core.urlresolvers.reverse()
。reverse
函数具有以下签名:https://docs.djangoproject.com/en/dev/ref/urlresolvers/
请注意,使用
reverse()
要求urlconf模块100%无错误,并且可以进行处理-至少没有ViewDoesNotExist
错误,或者出现可怕的NoReverseMatch
异常(模板中的错误通常会无声地失败,导致None
)。我在我的
models.py
中使用了两种不同的方法。第一个是permalink
装饰器:您也可以直接调用
reverse
:相关问题 更多 >
编程相关推荐