• Skip to main content
  • Skip to primary sidebar

学習記録

allauthでユーザー登録

2021年5月24日 by 河副 太智 Leave a Comment

アプリ追加

python manage.py startapp accounts

settingsにアプリ追加

‘accounts.apps.AccountsConfig’,

accounts.models.pyに追加

from django.contrib.auth.models import AbstractUser

class CustomUser(AbstractUser):
“””拡張ユーザーモデル”””

class Meta:
verbose_name_plural = ‘CustomUser’

settings.pyに追加

AUTH_USER_MODEL = ‘accounts.CustomUser’

accounts/admin.pyに追加

from django.contrib import admin

from .models import CustomUser

admin.site.register(CustomUser)

django-allauthをインストール
pip install django-allauth

マイグレーション
python manage.py makemigrations
python manage.py migrate

マイグレーションできない場合
以下のようなエラーがでる場合
conn = _connect(dsn, connection_factory=connection_factory, **kwasync) django.db.utils.OperationalError

settings.pyのdatabaseのdefaultをsqlite3に戻す

1
2
3
4
5
6
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

  1. Delete the DB(settings.pyのdatabaseのdefaultをsqlite3に戻す)
  2. Delete pycache and migrations from all the apps
  3. Make sure you have set AUTH_USER_MODEL
  4. Make migrations

ソース

settings.pyに追記

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'db.apps.DbConfig',
    'django.contrib.postgres',
    'accounts.apps.AccountsConfig',
 
    'django.contrib.sites',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
]

更にsettings.pyに追記

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# django-allauthで利用するdjango.contrib.sitesを使うためにサイト識別用IDを設定
SITE_ID = 1
 
AUTHENTICATION_BACKENDS = (
    'allauth.account.auth_backends.AuthenticationBackend',  # 一般ユーザー用(メールアドレス認証)
    'django.contrib.auth.backends.ModelBackend',  # 管理サイト用(ユーザー名認証)
)
 
# メールアドレス認証に変更する設定
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_USERNAME_REQUIRED = False
 
# サインアップにメールアドレス確認を挟むよう設定
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_EMAIL_REQUIRED = True
 
# ログイン/ログアウト後の遷移先を設定
LOGIN_REDIRECT_URL = 'diary:index'
ACCOUNT_LOGOUT_REDIRECT_URL = 'account_login'
 
# ログアウトリンクのクリック一発でログアウトする設定
ACCOUNT_LOGOUT_ON_GET = True

 

adminページにアクセスできない場合

adminページにアクセスすると以下のようなエラーが出る場合がある
リレーション “django_site”は存在しませんLINE 1:
… “django_site”。 “domain”、 “django_site”。 “name” FROM “django_si …

その際は以下のマイグレーションを行う ソース

1
2
./manage.py migrate sites
./manage.py migrate

リレーションaccounts_customuserが存在しないエラー

マイグレーションすると「django.db.utils.ProgrammingError: リレーション”accounts_customuser”は存在しません」というエラーが出る場合は
python manage.py makemigrations accountsを実行して、それでも
エラーが出たら以下を実行

①settings.pyのINSTALLED_APPSの一番上の’django.contrib.admin’,をコメントアウト
②メインのurl.pyのurlpatternのpath(‘admin/’, admin.site.urls),をコメントアウト
③python manage.py makemigrations
④python manage.py migrate
ソース

マイグレーション時にprimary keyワーニング

マイグレーション時にaccount.EmailAddress: (models.W042) Auto-created primary key used when not defining a primary key type, by default ‘django.db.models.AutoField’.という警告が出たらsettings.pyに

DEFAULT_AUTO_FIELD=’django.db.models.AutoField’
を入れて再度マイグレーションを行う

各種認証関連ページのテンプレートとメール定型文の場所

〇ローカルの場合
\Lib\site-packages\allauth\templates\account
〇AWSの場合
/home/app_admin/venv_ruling/lib/python3.7/site-packages/allauth/templates/account

URLは以下でアクセスできる(サインアップの例)
http://localhost:8000/accounts/signup/

ConnectionRefusedError at /accounts/login/が出たら

以下をsettings.pyに追加

EMAIL_BACKEND = ‘django.core.mail.backends.console.EmailBackend’
ACCOUNT_EMAIL_VERIFICATION = “none”

 

このエントリーをはてなブックマークに追加

Tweet
[`yahoo` not found]
このエントリーを Google ブックマーク に追加
LinkedIn にシェア
LINEで送る


Filed Under: Django

Reader Interactions

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

Primary Sidebar

カテゴリー

  • AWS
  • Bootstrap
  • Dash
  • Django
  • flask
  • GIT(sourcetree)
  • Plotly/Dash
  • VPS
  • その他tool
  • ブログ
  • プログラミング
    • Bokeh
    • css
    • HoloViews
    • Jupyter
    • Numpy
    • Pandas
    • PosgreSQL
    • Python 基本
    • python3
      • webアプリ
    • python3解説
    • scikit-learn
    • scipy
    • vps
    • Wordpress
    • グラフ
    • コマンド
    • スクレイピング
    • チートシート
    • データクレンジング
    • ブロックチェーン
    • 作成実績
    • 時系列分析
    • 機械学習
      • 分析手法
      • 教師有り
    • 異常値検知
    • 自然言語処理
  • 一太郎
  • 数学
    • sympy
      • 対数関数(log)
      • 累乗根(n乗根)
    • 暗号学

Copyright © 2025 · Genesis Sample on Genesis Framework · WordPress · Log in