Django将应用程序重定向到开发站点

时间:2014-08-01 18:29:29

标签: django redirect django-settings django-1.5 django-sites

我有一个Django应用程序,它在开发和生产环境中都具有完整的功能。只需适当更改ALLOWED_HOSTS(假设您不想DEBUG)并设置Apache以正确地为每个位置提供服务即可解决此问题。我的问题是我想使用Django redirects app来处理我的重定向(这个项目的一部分是从PHP过渡),因为这意味着我不再需要在Apache中处理这些重定向。重定向是一个更大的问题,Apache导致其index.php重定向循环问题。这也将允许我在Django下转换更多网站控制,这是管理轻松的目标。我遇到的问题是重定向应用使用SITE_ID来确定有效的目标/重定向。生产服务器具有与开发不同的主机名,因此我无法测试或验证重定向应用程序。这显然会损害隔离的几乎相同的开发服务器的目的,即在上线之前测试所有功能。我从sites framework了解到,各个站点需要单独的settings.py文件和守护进程共存,但这对我的场景没有帮助,因为开发站点在地理上与生产分开。从文档中我不清楚:

1)除了添加/更改SITE_ID之外,如何添加网站 - 我在哪里选择相关名称?

2)假设1,这是最好的方式(并且足够),因为我已经有了不同的settings.py文件?

3)我是如何为同一foo.com的两个网站条目结束的?这对我的重定向有何影响?我只有一个wsgi和settings.py(在每个服务器上)但是

+----+-------------+-------------+
| id | domain      | name        |
+----+-------------+-------------+
|  1 | example.com | example.com |
|  2 | foo.net     | foo.net     |
|  3 | foo.net     | foo         |
+----+-------------+-------------+

在我的数据库中?我没有看到这些网站的添加或配置位置,这导致我对如何调整我的网站框架以适应重定向应用程序感到困惑。由于我在Django 1.5.4上,默认情况下启用了站点框架,所以我以前从未想过它。

1 个答案:

答案 0 :(得分:0)

关联网站的名称无关紧要,因为重定向仅使用id,因此我删除了所有重复的网站,只留下实际域名的id 1,在生产和测试配置中设置SITE_ID = 1。我不知道其他网站来自哪里,因为我只使用SITE_ID来设置重定向,但现在可以使用了。