Djangoでredirectしたい
SignUpView の post メソッド内で redirect を使用して、ユーザーが登録後にリダイレクトする先を指定できます。以下は修正された SignUpView の例です。
python
# tools/views.py
from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth import login
from django.views import View
class SignUpView(View):
template_name = 'registration/signup.html'
def get(self, request):
form = UserCreationForm()
return render(request, self.template_name, {'form': form})
def post(self, request):
form = UserCreationForm(request.POST)
if form.is_valid():
user = form.save()
login(request, user)
return redirect('home') # リダイレクト先を適切なURLに変更してください
return render(request, self.template_name, {'form': form})
上記のコードでは、redirect('home') の部分で、ユーザーが登録後にリダイレクトされる先を home という名前のURLに指定しています。この部分をアプリケーション内の他のURLに変更するか、プロジェクト全体の urls.py で定義されたURLに変更してください。
例えば、プロジェクト全体の urls.py で home という名前のURLを定義している場合:
python
# your_project/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('tools/', include('tools.urls')),
path('home/', include('tools.urls')), # リダイレクト先のURLを定義
# 他のURLパターンも追加できます
]
上記のようにして、redirect の引数を home から適切なURLに変更してください。

ディスカッション
コメント一覧
まだ、コメントがありません