从 Django 发送电子邮件时,习惯(至少对我来说)使用 Site 对象来获取基本 url。IE'http://{}{}'.format(Site.objects.get_current(), reverse('my_view'))
然而,在 Django 1.6 中,站点框架默认没有启用,这让我想到现在可能有不同的方法。
当然,您可以在 settings.py 文件中添加基本 url,但是有没有 Django 特定的方法来获取基本 url?
如果它在模板或视图中,您可以使用HttpRequest.build_absolute_uri(location)
,但是如果您使用 Celery 任务发送电子邮件,那么这不是那么简单(因为您没有 HttpRequest 对象的实例。
所以问题是:获取主机的最 Djangonic 方式是什么,用于构建要在电子邮件(或其他没有请求对象的区域)中使用的绝对 URL?