get_absolute_url中的django full url

Ron*_*ran 11 django

当我在模板中调用模型get_absolute_url方法时,我希望有一个绝对/完整的URL.在我的入门模型我有以下:

def get_absolute_url(self):
    return ('blog_entry_detail', (), { 'year': self.pub_date.strftime("%Y"),
                                           'month': self.pub_date.strftime("%b").lower(),
                                           'day': self.pub_date.strftime("%d"),
                                           'slug': self.slug })

get_absolute_url = models.permalink(get_absolute_url)
Run Code Online (Sandbox Code Playgroud)

在我的模板文件中:

{{object.get_absolute_url}}
Run Code Online (Sandbox Code Playgroud)

我想输出前缀为'http://www.example.com'的网址

我想使用下面的行来获取当前的域名,但我不知道我会把它放在哪里.

from django.contrib.sites.models import Site
current_site = Site.objects.get_current().domain
Run Code Online (Sandbox Code Playgroud)

And*_*ron 1

当我需要完整的 URL 时,我通常会选择request.get_absolute_url(),而不是使用 自己组装Site.objects.get_current().domain。然而,这种方法似乎存在一些问题。

无论如何,我认为模型不是放置此内容的正确位置,因为它在 urlconf 和模型中重复 URL,从而违反了 DRY 原则。不能使用某种形式的反向 URL 查找吗?