在Django中,如何直接從urls.py中進行簡單的重定向?當然,我是一個組織良好的人,偏愛DRY原則,因此我想根據它的名稱來獲取目標網址模式,而不是對網址進行硬編碼。直接從django的urls.py重定向到指定的url模式?
103
A
回答
152
如果你是在Django的1.4或1.5,你可以這樣做:
from django.core.urlresolvers import reverse_lazy
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-page/$', RedirectView.as_view(url=reverse_lazy('my_named_pattern'), permanent=False)),
...
如果你是在Django的1.6或以上,你可以這樣做:
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-page/$', RedirectView.as_view(pattern_name='my_named_pattern', permanent=False)),
...
在Django的1.9,默認值permanent
已從True更改爲False。正因爲如此,如果你不指定permanent
關鍵字參數,您可能會看到這樣的警告:
RemovedInDjango19Warning:「RedirectView.permanent」的默認值在Django 1.9從真會更改爲False。設置一個明確的值來消除此警告。
8
這樣在舊版本的Django的支持,如果你不能支持RedirectView的
在view.py
def url_redirect(request):
return HttpResponseRedirect("/new_url/")
在url.py
url(r'^old_url/$', "website.views.url_redirect", name="url-redirect"),
可以使它通過使用HttpResponsePermanentRedirect
24
這適用於我。
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-page/$', RedirectView.as_view(url='/')),
...
在上面的例子中'/'
意味着它會重定向到索引頁, 在這裏你可以添加任何URL模式也。
+1
請注意,RedirectView在老版本的Django中默認爲'permanent = True',在Django版本> = 1.9時默認爲'permanent = False'。 – Flimm
5
我試圖重定向所有404到主頁及以下偉大的工作:
from django.views.generic import RedirectView
...
under urlpatterns, added:
url(r'^.*/$', RedirectView.as_view(url='/home/')),
url(r'^$', RedirectView.as_view(url='/home/')),
相關問題
- 1. Django:重定向到視圖函數和重定向到url(從urls.py文件)有什麼區別
- 2. 的fancybox直接URL重定向
- 3. 重定向url獲取直接url
- 4. 的Django:指定的URL模式
- 5. 重定向的URL不是從urls.py中挑選的
- 6. 防止用戶直接訪問django中的重定向URL
- 7. Django URL重定向
- 8. Django重定向URL
- 9. Django Url重定向
- 10. URL重定向Django
- 11. Django重定向到自定義URL
- 12. Django將URL重定向到絕對URL
- 13. SecurePay直接發佈url重定向
- 14. IIS 7.5 URL重定向特定模式
- 15. Django和urls.py:我如何通過指定的URL HttpResponseRedirect?
- 16. 用於URL重定向模式的RegEx?
- 17. 重定向到URL從PDF
- 18. url重定向從_到 - htaccess
- 19. Django的內部重定向/ URL重寫
- 20. Django url重定向問題
- 21. 在Django URL中重定向
- 22. 重定向主鍵django {%url%}
- 23. IIS 7.5 URL重定向直接鏈接到媒體頁面
- 24. htaccess重定向從域名到特定URL的所有鏈接
- 25. Grails的重定向URL從
- 26. 添加斜線到特定的URL模式和重定向的URL產生
- 27. PHP的重定向到URL
- 28. Symfony2從舊url重定向到新url
- 29. 如何通過Codeigniter中的重定向URL重定向到URL?
- 30. 如何Servlet的重定向到指定的URL
剛一說明,請記住,RedirectView的具有永久=真爲默認值。 –
https://docs.djangoproject.com/en/1.7/ref/class-based-views/base/#redirectview – Wtower
你可以重定向一切!像這樣:''(r'^。*/$',RedirectView.as_view(url ='http://newurl.com')),''' – radtek