djangoでRedirectViewを使ってみる

2022年5月3日

djangoでRedirectView

任意のURLにリダイレクトすることに特化した基本汎用ビュークラスです。

config/urls.py


from django.contrib import admin
from django.urls import path, include
urlpatterns = [
    path('admin/', admin.site.urls),
    path('app/', include('app.urls')),
]

app/urls.py


from django.urls import path
from . import views
app_name = 'app'
urlpatterns = [
        path('', views.index, name='index'),
        path('redirected/', views.redirected, name='redirected'),
        path('redirect/', views.redirect, name='redirect'),
]

app/views.py


from django.shortcuts import render
from django.views import View
from django.views.generic import TemplateView
from django.views.generic import RedirectView
class IndexView(TemplateView):
    template_name = 'app/index.html'
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['message'] = 'hello_index_page!!'
        return context
index = IndexView.as_view()
class RedirectedView(TemplateView):
    template_name = 'app/redirected.html'
    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['message'] = 'hello_redirected_page!!'
        return context
redirected = RedirectedView.as_view()
class RedirectView(RedirectView):
    url = '/app/redirected/'
redirect = RedirectView.as_view()

実行結果


#ブラウザに下の通りのURLを打ち込んだら
http://[IP]:[PORT]/app/redirect/
#下のURLにリダイレクトされました
http://[IP]:[PORT]/app/redirected/
YouTube

2022年5月3日