如何在使用 django-hosts 时在 django 中重定向?
How to redirect in django while using django-hosts?
我正在使用 django-hosts 包来管理应该在各种不同子域中设置的内容。我首先制作一个视图,其中使用表单来更改某些内容。一旦表单被验证和处理,用户应该被重定向到其他页面。查看文档有一个简单的方法来渲染():
settings_url = reverse('settings', host='dashboard')
return render(request, 'dashboard/settings.html', {'settings_url': settings_url})
但是,没有提到 redirect()。那么我将如何重定向到其他地方,而不是通常的 return redirect("dashboard:settings")
myapp/hosts.py :
host_patterns = patterns('',
host(r'www', settings.ROOT_URLCONF, name='www'),
host(r'dashboard\.myapp\.com', 'dashboard.urls', name='dashboard'),
)
dashboard/urls.py
from .views import home, websitesettings
urlpatterns = [
url(r'^$', home, name='home'),
url(r'^settings/$', websitesettings, name='settings'),
]
基本上我想要的只是在提交表单后重定向回同一页面(在渲染示例中,我正在提交一个表单来更改某些网站设置,这是一个独立的模型,然后我之后想重定向回同一页面)。
我们进行了几次不同而复杂的尝试,结果只休息了一个晚上,想出了一个出奇简单的解决方案。将 dajngos 本机重定向与 django-hosts 反向功能一起使用,它的工作原理非常棒:
from django_hosts.resolvers import reverse
return redirect(reverse('home', host='dashboard'))
我正在使用 django-hosts 包来管理应该在各种不同子域中设置的内容。我首先制作一个视图,其中使用表单来更改某些内容。一旦表单被验证和处理,用户应该被重定向到其他页面。查看文档有一个简单的方法来渲染():
settings_url = reverse('settings', host='dashboard')
return render(request, 'dashboard/settings.html', {'settings_url': settings_url})
但是,没有提到 redirect()。那么我将如何重定向到其他地方,而不是通常的 return redirect("dashboard:settings")
myapp/hosts.py :
host_patterns = patterns('',
host(r'www', settings.ROOT_URLCONF, name='www'),
host(r'dashboard\.myapp\.com', 'dashboard.urls', name='dashboard'),
)
dashboard/urls.py
from .views import home, websitesettings
urlpatterns = [
url(r'^$', home, name='home'),
url(r'^settings/$', websitesettings, name='settings'),
]
基本上我想要的只是在提交表单后重定向回同一页面(在渲染示例中,我正在提交一个表单来更改某些网站设置,这是一个独立的模型,然后我之后想重定向回同一页面)。
我们进行了几次不同而复杂的尝试,结果只休息了一个晚上,想出了一个出奇简单的解决方案。将 dajngos 本机重定向与 django-hosts 反向功能一起使用,它的工作原理非常棒:
from django_hosts.resolvers import reverse
return redirect(reverse('home', host='dashboard'))