【发布时间】:2012-04-30 13:47:20
【问题描述】:
我有一个使用 django-registration 的 Django 1.4 项目,它在用户成功注册后调用 redirect('registration_complete', (), {})。这在运行在http://127.0.0.1:8000/ 的 django 开发服务器上效果很好。
我的登台站点位于 Apache 服务器上的非根位置。类似于http://example.com/mysite。因此,当用户在那里注册时,这会导致页面未找到错误,因为 django-registration 重定向调用没有正确反转 url - 它离开了站点根目录 (mysite/)。
我正在尝试决定如何解决此问题。这是我正在考虑的:
1) 编写自定义 django-registration 后端以不同方式处理注册工作流。
2) 修补 django-registration 默认后端以不同方式处理重定向。
3) ?
解决此问题的最佳方法是什么?
【问题讨论】:
-
(我认为)让我感到痛苦的重定向示例位于此 django-registration 视图代码的第 190 行:bitbucket.org/ubernostrum/django-registration/src/27bccd108cde/…
-
网址解析在其他地方有效吗? Django 通常不能很好地处理子目录,所以最好在单独的子域上运行项目。
-
我对 reverse('urlname') 的所有调用都省略了 mysite 前缀。这一直是我的症结所在。为我的暂存环境使用子域是一个我没有考虑过的好主意。
-
如果您可以为 Django 项目使用单独的子域 - 无论如何这将是最好的解决方案。
-
我同意——一个很好的建议。很高兴知道如何可靠地让 reverse() 工作,但我现在正在研究子域解决方案。谢谢!
标签: django django-registration