Django中的模型内部的build_absolute_uri

时间:2017-12-15 19:53:50

标签: django django-models django-urls django-2.0

我正在使用Django 2.0

在我的应用程序的models.py文件中,我已定义get_absolute_url()以获取实例的绝对URL。 此模型类用作URL缩短器并存储short_key

这将产生类似

的网址
http://short_domain/key

短网址主机域可以从设置下注设置。

如果SHORT_URL_HOST中存在settings,则会使用该{{ instance.get_absolute_url }},否则将使用当前的网站域名/主机。

我正在使用from django.conf import settings from django.http import request class ShortUrl(models.Model): short_key = models.CharField(max_length=25, blank=True) def get_absolute_url(self): reverse_url = reverse('short-url', kwargs={'key': self.short_key}) if hasattr(settings, 'SHORT_URL_HOST'): url_host = settings.SHORT_URL_HOST else: url_host = request.build_absolute_uri("/").rstrip("/") return url_host + reverse_url 来显示生成的短网址。

If

else工作正常。但是在URI语句中,我希望得到当前主机的完整module 'django.http.request' has no attribute 'build_absolute_uri' 与反向URL连接。

但这会产生错误

get_absolute_url(self)

如何从模型的{{1}}函数返回包含域名的完整绝对URI?

0 个答案:

没有答案