Python Django中的默认重定向url

Python Django中的默认重定向url,python,django,apache,redirect,Python,Django,Apache,Redirect,我有一个Django项目正在测试中 WSGIScriptAlias /test /var/www/test/test/django.wsgi 它工作正常,但在重定向页面中,如注销->登录,它会转到: 127.0.0.1/accounts/login 所以我没有这个url,它必须重定向到这个: 127.0.0.1/test/accounts/login 我将此设置为设置。py: LOGIN_URL = "/test/accounts/login/" url(r'^accounts/logi

我有一个Django项目正在测试中

WSGIScriptAlias /test /var/www/test/test/django.wsgi
它工作正常,但在重定向页面中,如注销->登录,它会转到:

127.0.0.1/accounts/login
所以我没有这个url,它必须重定向到这个:

127.0.0.1/test/accounts/login
我将此设置为设置。py

LOGIN_URL = "/test/accounts/login/"
url(r'^accounts/login/$',login,name="login"),
和我的url.py

LOGIN_URL = "/test/accounts/login/"
url(r'^accounts/login/$',login,name="login"),
而且它再也不起作用了

我怎样才能解决它?
感谢您将
子站点添加到您的设置中。py:

# settings.py
SUB_SITE = "/test/"
然后在
settings.py
中:

urlpatterns = patterns('',
  (r'^%s/' % settings.SUB_SITE, include('urls_subsite')),
)
if settings.URL_PREFIX:
    prefixed_urlpattern = []
    for pat in urlpatterns:
        pat.regex = re.compile(r"^%s/%s" % (settings.URL_PREFIX[1:], pat.regex.pattern[1:]))
        prefixed_urlpattern.append(pat)
    urlpatterns = prefixed_urlpattern
更多信息:

另一种选择是在
url.py
中使用这种代码和平:

urlpatterns = patterns('',
  (r'^%s/' % settings.SUB_SITE, include('urls_subsite')),
)
if settings.URL_PREFIX:
    prefixed_urlpattern = []
    for pat in urlpatterns:
        pat.regex = re.compile(r"^%s/%s" % (settings.URL_PREFIX[1:], pat.regex.pattern[1:]))
        prefixed_urlpattern.append(pat)
    urlpatterns = prefixed_urlpattern
更多信息:


但我认为第一种解决方案要好得多。

我不认为你应该像@IgorChubin建议的那样,通过重写模式在同一个过程中运行一个“子”站点,这应该是一个问题

如果您真的想让两个站点在同一个域上运行,即使它们都使用Django,也可以运行单独的(虚拟)服务器

如果确实必须这样做,请使用服务器配置重写特定的url并运行单独的进程

在国际海事组织,显而易见的选择是:

  • 在项目中创建带前缀的应用程序,或
  • 创建子域

然后可能使用Django sites框架合并后一个选项的管理任务。

我使用的一个简单答案是

from django.http import HttpResponse, HttpResponseRedirect 
# hook for testing in local server, compatible with server deployment
def redirect_to_xkcd( request, everythingelse ):
    return HttpResponseRedirect( "/"+everythingelse, request )
并将这一行添加到URL模式中

url(r'test/(?P<everythingelse>.+)', redirect_to_xkcd ),
url(r'test/(?P.+)”,将_重定向到_xkcd),

无法回答第一个问题,但对于第二个问题,您应该使用带有视图或模型名称的来构建URL。这样,更改
URL.py中的URL将更改代码库中的所有位置。对于只需要url而不需要重定向的情况,请使用或
url
模板标记。@J.DavidSmith是的,您是对的,关于CreateView,我应该将直接地址更改为反向。但是关于登录,我在url.py:url(r'^accounts/login/$,login,name=“login”)中添加了这个变量,但它不起作用?还是我应该手动使用它是代码?@MortezaIpo:Manually@MortezaIpo:您在
url\u subsite
(在我的示例中)中拥有的所有内容@MortezaIpo:也谢谢您!我很高兴帮助你