我正在使用django-hosts让不同的域名指向一个 Django 应用程序。我的大部分 Django 应用程序在 mydomain.com 上为站点提供服务,但有一个函数处理在 mydoma.in 上的短 URL。
使用 django-hostsdefault_urls.py
用于 mydomain.com 并short_urls.py
用于 mydoma.in。*_urls.py
根据请求的域加载一个且只有一个文件。
但是,在两种情况下,我似乎需要对 mydoma.in 的请求才能default_urls.py
正确完成。这是我的views.py文件中的相关代码:
def short_url(request, value):
try:
object = Object.objects.get(key=value)
# (1) Need to load default_urls.py here to /object URL is resolved
return redirect (settings.BASE_URL + object.get_absolute_url(), permanent=True)
except:
# (2) Need to load default_urls.py here to 404 page renders
raise Http404
有没有办法强制应用程序在调用and之前“切换”short_urls.py
到?default_urls.py
redirect
raise
(我不能只将相关路由从一个文件复制到另一个文件,否则 URL 将在两个域下解析。)
作为可能的解决方法,我注意到了这段代码:
request.urlconf = settings.ROOT_URLCONF
那么,或者,有没有办法替换redirect
以及raise
使用request
带有更新的对象的代码urlconf
?
谢谢!