Django Admin Page断开链接

时间:2013-10-20 12:16:05

标签: python django django-admin uwsgi django-wsgi

我正在使用uwsgi部署Django应用程序。 该应用部署在SERVER_URL:PORT下。

使用代理服务器,也可以通过EXTERNAL_WEB_SITE/MY_APP_NAME访问该应用。

使用管理页面时,在EXTERNAL_WEB_SITE/MY_APP_NAME/ADMIN/下,我可以看到正确的模型。但是,管理页面中指向模型的链接指向:EXTERNAL_WEB_SITE/ADMIN/MAIN_PACKAGE/SELECTED_MODEL/。也就是说 - MY_APP_NAME不会传递提供的链接。 我想这是因为在服务器本身,应用程序部署时没有应用程序名称,只是在特定端口下。

为了解决这个问题,我尝试在FORCE_SCRIPT_NAME=MY_APP_NAME中定义settings.py。这给了我很好的联系。但是 - 在尝试修改对象并保存时 - 在EXTERNAL_WEB_SITE/MY_APP_NAME/ADMIN/MAIN_PACKAGE/SELECTED_MODEL/ITEM/下 - 在点击Save后我与EXTERNAL_WEB_SITE/MY_APP_NAME/MY_APP_NAME/ADMIN/MAIN_PACKAGE/SELECTED_MODEL/ITEM/相关联 - 也就是说 - 我得到了两次MY_APP_NAME。

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您需要通过代理服务器

的请求传递SCRIPT_NAME env变量

或者你可以有两个实例运行一个FORCE_SCRIPT_NAME设置,第二个没有

uwsgi有一个不错的选择,你可以在两个端口上部署你的应用程序,或者(甚至更好)根据标题或路径设置env变量

[uwsgi]
route = ^(/MY_APP_NAME)/ addvar:SCRIPT_NAME=$1