我正在使用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?