実現したいこと
DjangoのLoginについて、Loginしても画面遷移したいです。
発生している問題・分からないこと
Login機能を実装し、ボタンを押下しても進みたい画面に遷移しないです。
login.html → sales_list.htmlに遷移したいです。
ソースコードは関係ある部分を掲載しています。
settings.py のLOGIN_REDIRECT_URL を設定してもうまくいきませんでした。
ファイル構成は以下としています。
salesproject
L accounts
L urls.py
L sales
L urls.py
L views.py
L salesproject
L settings.py
L templates
L base.html
L registartion
L login.html
ターミナル上ではGET、POSTしています。
[08/Jun/2025 21:11:08] "GET /accounts/login/ HTTP/1.1" 200 2116
[08/Jun/2025 21:11:15] "POST /accounts/login/ HTTP/1.1" 200 2116
該当のソースコード
login.html
1{% extends "base.html" %} 2{% block title %}LOGIN{% endblock title %} 3{% block h2 %}LOGIN{% endblock %} 4 5{% block content %} 6<form method="post" class="p-4 m-4 bg-light border form-group"> 7 {% csrf_token %} 8 {% for error in form.errors.value %} 9 {{ error }} 10 {% endfor %} 11 <div class="row mb-2"> 12 <label>UserID</label> 13 <input class="form-control" name="username"> 14 </div> 15 <div class="row mb-2"> 16 <label>Password</label> 17 <input type="password" class="form-control" name="password1"> 18 </div> 19 <form action="{% url 'accounts:login' %}" method='post' name='login'> 20 {% csrf_token %} 21 <button type="submit" class="btn btn-primary">Login</button> 22 </form> 23</form> 24{% endblock content %}
settings.py
1INSTALLED_APPS = [ 2 "django.contrib.admin", 3 "django.contrib.auth", 4 "django.contrib.contenttypes", 5 "django.contrib.sessions", 6 "django.contrib.messages", 7 "django.contrib.staticfiles", 8 "accounts.apps.AccountsConfig", 9 "sales.apps.SalesConfig", 10] 11 12LOGIN_URL = 'app_name:login' 13LOGIN_REDIRECT_URL = 'sales' 14LOGOUT_REDIRECT_URL = 'index'
views.py
1from django.shortcuts import render 2from django.urls import reverse, reverse_lazy 3from django.views.generic import ListView, DeleteView, DetailView, CreateView, UpdateView 4from .models import CustomerInformation 5from django.contrib.auth.mixins import LoginRequiredMixin 6from django.core.exceptions import PermissionDenied 7from .consts import ITEM_PER_PAGE 8 9class ListSalesView(LoginRequiredMixin, ListView): 10 model = CustomerInformation 11 object_list = CustomerInformation.objects.all() 12 template_name = 'sales/sales_list.html' 13 paginate_by = ITEM_PER_PAGE
urls.py
1from django.urls import path 2 3from . import views 4 5urlpatterns = [ 6 path('', views.index_view, name='index'), 7 path('sales/', views.ListSalesView.as_view(), name='sales'), 8 path('sales/<int:pk>/detail/', views.DetailSalesView.as_view(), name='detail'), 9 path('sales/create/', views.CreateSalesView.as_view(), name='create'), 10 path('sales/<int:pk>/delete/', views.DeleteSalesView.as_view(), name='delete'), 11 path('sales/<int:pk>/update/', views.UpdateSalesView.as_view(), name='update'), 12] 13
base.html
1{% load static %} 2 3<!doctype html> 4<html lang="en"> 5 <head> 6 <meta charset="utf-8"> 7 <meta name="viewport" content="width=device-width, initial-scale=1"> 8 <title>{% block title %}{% endblock title %}</title> 9 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous"> 10 <link rel="stylesheet" type="test/css" href="{% static 'sales/css/style.css' %}" 11 </head> 12 <body> 13 <ul class="nav nav-underline sticky-top border-bottom sticky-top"> 14 <li class="nav-item"> 15 <a class="nav-link" aria-current="page" href="{% url 'sales' %}">一覧</a> 16 </li> 17 <li class="nav-item"> 18 <a class="nav-link" href="{% url 'create' %}">新規作成</a> 19 </li> 20 <div class="navbar-nav d-flex flex-row"> 21 {% if request.user.is_authenticated %} 22 <form action="{% url 'accounts:logout' %}" method='post' name='logout'> 23 {% csrf_token %} 24 <a class="nav-link mx-3">Logout</a> 25 </form> 26 {% else %} 27 <a class="nav-link mx-3" href="{% url 'accounts:login' %}">Login</a> 28 <a class="nav-link mx-3" href="{% url 'accounts:signup' %}">Signup</a> 29 {% endif %} 30 </div> 31 </ul> 32 <div class='p-4'> 33 <h2>{% block h2 %}{% endblock %}</h2> 34 {% block content %}{% endblock content %} 35 </div> 36 <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz" crossorigin="anonymous"></script> 37 </body> 38</html>
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
Qiitaなどを参考に調べましたが、画面遷移が起きないです。
補足
特になし
回答1件
あなたの回答
tips
プレビュー