🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Django

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

Q&A

解決済

1回答

2575閲覧

Django allauth の設定方法 (/loginなどデフォルトのallauthテンプレートが表示されない)

Madai

総合スコア29

Django

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

0グッド

0クリップ

投稿2020/12/06 06:19

Django allauthでログイン機能を実装していますが、/loginなどデフォルトのallauthテンプレートを表示させようとすると空白ページになってしまいます。
(allauthのtemlatesが取得できていないよう?です。)
またadminからログイン後にhttp://localhost:8000/accounts/logoutにアクセスしようとすると、変なリダイレクト(404エラー http://localhost:8000/accounts/logout/accounts/login)が発生します。
設定などに不備等ありますでしょうか。 よろしくおねがいします。

【ディレクトリ階層】
イメージ説明

【settings.py】 import os INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'paperwork_system', 'top', 'client', 'accounts.apps.AccountsConfig', 'django.contrib.sites', 'allauth', 'allauth.account', 'allauth.socialaccount',#allauth\templates\account\login.html(デフォルトのlogin)を利用する際に必要 ] TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] AUTH_USER_MODEL = 'accounts.Users' SITE_ID = 1 AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', ) ACCOUNT_AUTHENTICATION_METHOD = 'username' ACCOUNT_USERNAME_REQUIRED = True # ACCOUNT_EMAIL_REQUIRED = False # ACCOUNT_USER_MODEL_USERNAME_FIELD = None LOGIN_REDIRECT_URL = '/top' ACCOUNT_LOGOUT_REDIRECT_URL = 'accounts/login' ACCOUNT_LOGOUT_ON_GET = True
【urls.py】 from django.contrib import admin from django.contrib.staticfiles.urls import static#デバックモードのみで使われるっぽい from django.urls import path, include from.import settings urlpatterns = [ path('admin/', admin.site.urls), path('accounts/', include('allauth.urls')), path('top/', include('top.urls')), path('client/', include('client.urls')), ]
【accounts.apps.AccountsConfig】 from django.apps import AppConfig class AccountsConfig(AppConfig): name = 'accounts'
【accounts.models】 from django.db import models from django.contrib.auth.models import AbstractUser class Users(AbstractUser): class meta: verbose_name_plural = 'Users'

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

allauthのファイル名と、独自に作成したファイル名が重複しており、
allauthのテンプレート base.html
ではなく
独自に作成した paperwork_system.templates.base.html

が他のallauthテンプレートの継承に使用されてしまっていたことが原因になっていました。
独自に作成した paperwork_system.templates.base.htmlをリネームすることで解決が確認できました。

リネームしなくてすむ方法は未確認です。

投稿2020/12/06 07:49

編集2020/12/06 10:52
Madai

総合スコア29

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問