当我在django(或访问管理员)中提交表单时,地址会在URL栏中更改为IP地址

时间:2010-12-25 17:55:12

标签: django django-admin

我有以下设置。

在我的dns上: 一个将我的域指向IP地址的名称记录

在我的服务器上: nginx - > gunicorn - > django的

但是当我提交表单(例如登录表单)时,URL栏中的地址会从我的域名更改为我的IP地址。这会导致跨域错误。

这种情况发生在表单上,​​当我访问mydomain / admin

当我访问网页时,我在URL栏中的域名保持不变。当我去mydomain / admin时,它会自动切换到IP而不提交任何其他表单。任何其他时间我都必须提交表格才能更改为IP地址。

我的所有媒体和所有内容都在路径中使用mydomain。这是最奇怪的事情。当我进入我的管理页面时,我才第一次注意到它,但并没有想太多。但我刚刚添加了几个表单,现在我无法提交表单,因为表单尝试提交到IP地址导致跨域错误。

我应该添加由django-registration自动生成的表格。

3 个答案:

答案 0 :(得分:0)

settings.py文件中查找您的IP。它可能是MEDIA_URL设置为使用您的IP而不是您的域名。

答案 1 :(得分:0)

这必须表示您的表单已配置为提交到IP地址。查看表单的来源并查找表单标记:

<form action="http://(ip here?)/form/" method="GET">

确保未插入IP地址。您可以使用相对URL。我通常将其留空,因为我的大多数表单都是由生成表单的相同视图处理的。

答案 2 :(得分:0)

我假设您在某个时刻在本地开发并且没有发生这种情况所以我建议您在Nginx配置中使用它。您是否可以使用Firebug / Web Inspector查看您的域名到您的IP是否有重定向?

我还会检查以确保您的网站的网址在管理员中正确设置。有时这会导致错误的网址,但我认为您提到的案例并不适用。