जवाबों:
यदि आप 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
ट्रू से गलत में बदल गया है। इस कारण, यदि आप permanent
कीवर्ड तर्क निर्दिष्ट नहीं करते हैं, तो आप यह चेतावनी देख सकते हैं:
हटाए गए InDjango1919 चेतावनी: 'RedirectView.permanent' का डिफ़ॉल्ट मान ट्रू से Django 1.9 में बदल जाएगा। इस चेतावनी को चुप करने के लिए एक स्पष्ट मूल्य निर्धारित करें।
(r'^.*/$', RedirectView.as_view(url='http://newurl.com')),
pattern_name
तर्क RedirectView
। अन्य उपयोगी मापदंडों में शामिल हैं permanent
औरquery_string
।
यह मेरे लिए काम करता है।
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-page/$', RedirectView.as_view(url='/')),
...
उपरोक्त उदाहरण में '/'
इसका मतलब है कि यह इंडेक्स पेज पर रीडायरेक्ट करेगा, जहां आप किसी भी यूआरएल पैटर्न को भी जोड़ सकते हैं।
RedirectView
है permanent=True
Django के पुराने संस्करणों में डिफ़ॉल्ट के रूप में, और permanent=False
Django संस्करण> = 1.9 में डिफ़ॉल्ट के रूप में।
django v2 + के लिए
from django.contrib import admin
from django.shortcuts import redirect
from django.urls import path, include
urlpatterns = [
# this example uses named URL 'hola-home' from app named hola
# for more redirect's usage options: https://docs.djangoproject.com/en/2.1/topics/http/shortcuts/
path('', lambda request: redirect('hola/', permanent=False)),
path('hola/', include("hola.urls")),
path('admin/', admin.site.urls),
]
permanent=False
डिफ़ॉल्ट है। अधिक जानकारी के लिए कृपया पढ़ें: docs.djangoproject.com/en/2.1/topics/http/shortcuts/#redirect developer.mozilla.org/en-US/docs/Web/HTTP/…
यदि आप RedirectView का समर्थन नहीं कर सकते हैं तो यह तरीका django के पुराने संस्करणों में समर्थित है
देखने में
def url_redirect(request):
return HttpResponseRedirect("/new_url/")
Url.py में
url(r'^old_url/$', "website.views.url_redirect", name="url-redirect"),
आप इसका उपयोग करके इसे स्थायी बना सकते हैं HttpResponsePermanentRedirect