djangoでRedirectViewを使ってみる
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/
ディスカッション
コメント一覧
まだ、コメントがありません