django新規登録機能。

今回は、djangoによる、新規登録機能を作っていきます。

 

 

まずはフォルダのパス設定を行います。

 

フォルダのパス設定

 

プロジェクト/settings.pyに行き

 

Template(HTML)、static(CSS)、及びmedia(画像)フォルダのディレクトリ指定をしていきます。

import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# テンプレート(HTML)
TEMPLATE_DIR = os.path.join(BASE_DIR,"Template")
# static(CSS)
STATIC_DIR = os.path.join(BASE_DIR,"static")
# 画像
MEDIA_DIR = os.path.join(BASE_DIR, "media")

これは上記をコピペしましょう。

 

つぎは、settings.py内のTEMPLATESリストを見つけ


'DIRS': [],

こん中を

'DIRS': [TEMPLATE_DIR,],

こうしましょう。

 

 

その次は、

これがあるところに移動し、

その下に

STATICFILES_DIRS = [STATIC_DIR,]

#MEDIA_DIR

MEDIA_ROOT = MEDIA_DIR

MEDIA_URL = "/media/"

 

こいつらをコピペしましょう。

 

これにてディレクトリ設定は完了です。

 

パスワードのハッシュ化設定

まずはsettings.py内の

AUTH_PASSWORD_VALIDATORS

リストを見つけましょう。

そして、この中に、

PASSWORD_HASHERS = [
    "django.contrib.auth.hashers.Argon2PasswordHasher",
    "django.contrib.auth.hashers.BCryptSHA256PasswordHasher",
    "django.contrib.auth.hashers.BCryptPasswordHasher",
    "django.contrib.auth.hashers.PBKDF2PasswordHasher",
    "django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher",
]

こちらをコピペします。

 

次に、パスワードの強度を定義するために、

 

PASSWORD_HASHERSの下のAUTH_PASSWORD_VALIDATORSを編集します。

 

MinimumLengthValidatorの下に

 'OPTIONS':{"min_length":6},

上記をコピペします。

 

 'OPTIONS':{"min_length":6},

ちなみにこの6の意味は、パスワードの強度で、パスワードの最小単位を設定しています。

つまりこの設定をしたので、5桁のパスワードは登録されません。

 

6桁以上のパスワードだけが登録されます。

 

これで、settings.pyの設定は終了です。

 

モデルの設定

次はモデルの設定をしていきます。

 

はいー

いつも通りapp/のmodels.pyを開き

 

from django.db import models
# ユーザー認証
from django.contrib.auth.models import User

# ユーザーアカウントのモデルクラス
class Account(models.Model):

    # ユーザー認証のインスタンス(1vs1関係)
    user = models.OneToOneField(User, on_delete=models.CASCADE)

    # 追加フィールド
    last_name = models.CharField(max_length=100)
    first_name = models.CharField(max_length=100)
    account_image = models.ImageField(upload_to="profile_pics",blank=True)

    def __str__(self):
        return self.user.username
       

上記をコピペします。

 

そして保存して