【发布时间】:2016-05-01 13:14:26
【问题描述】:
我想在 cron 作业中发送邮件。邮件应包含 指向我的应用程序的链接。
在 cron 作业中,我没有请求对象,无法使用 request.build_absolute_uri()。
AFAIK 网站框架可以在这里提供帮助。但是没有给我协议(http vs https)?
我的应用程序是可重用的,有时托管在 http 网站上,有时托管在 https 网站上。
更新
我搜索了一个常见的 django 方式。可以创建自定义设置,但首选 django 标准的解决方案。
【问题讨论】:
-
你在一个 Django 实例中服务了多少个不同的域?
-
@AlexMorozov 在我当前的上下文中,一个单一的 Django 实例服务器只有一个域。但是该应用程序安装在许多不同的服务器上。有些通过 http 提供服务,有些通过 https 提供服务。
-
我在这种情况下使用设置来服务,尤其是当我没有请求对象时。 settings.HOST_ADDRESS + "{0}".format(resource_path) 之类的东西应该可以完成这项工作。通过将基本设置扩展到特定于站点使用的各种设置文件(例如:--settings=settings.site1),它应该可以通过最小配置更改重用
-
@rreddy settings.HOST_ADDRESS 是您创建的自定义设置吗?我想是的,因为我在这里找不到它docs.djangoproject.com/es/1.9/ref/settings。我问自己:我的用例没有通用的解决方案吗?我认为我的用例很常见。但也许我错了。
-
是的,@guettli,这是一个自定义设置。我认为没有其他方法可以在没有请求对象的情况下检索方案(http/https),除了采用不同的方法,比如声明这样的自定义设置。