質問するログイン新規登録

Q&A

解決済

1回答

569閲覧

DjangoのLoginについて、Loginしても画面遷移しない

otsukikakaka

総合スコア2

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2025/06/08 12:34

0

0

実現したいこと

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

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などを参考に調べましたが、画面遷移が起きないです。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

回答1

0

自己解決

setting.pyのLOGIN_REDIRECT_URL = 'index'と変更すると解決しました

投稿2025/06/15 08:22

otsukikakaka

総合スコア2

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問