Django 3におけるカスタムユーザーモデルの例について詳細を説明する。
紹介する
こんにちは、この文章ではDjango 3にユーザーモデルを作成し、Django Adminのデフォルト登録機能も変更します。私たちはメールとパスワードでログインします。
動機
私は自分のアプリケーションのために「ユーザー定義」を作成しなければなりません。モデルを作ることができますが、問題はクリッテッパーコマンドが正常に動作しません。それを調整するために、大量の研究をしなければなりません。問題は当時の資源の大半が時代遅れになっていたので、この文章を書くことにしました。
GitHub倉庫を作りましたので、よろしければ、そのまま使ってもいいです。
始めましょう
まず、Django Projectを作成し、usersというアプリケーションを作成します。
今から私たちはユーザーアプリケーションでmodels.pyファイルの編集を開始できます。
編集する前に理論的な準備をしておきます。
Djangoの中のマネージャーは何ですか?
Managerは、このインターフェースを通じてデータベースクエリ操作をDjangoモデルに提供するインターフェースです。Djangoアプリの各モデルには少なくとも一つのManagerがあります。Django Docs
簡単に言えば、マネージャーはモデルを管理する方法を提供してくれました。モデルをManager類のサブクラスにすることで実現できます。マネージャクラスは、クリッテッパーなどのコマンドを編集できるところです。
今はmodels.pyを開いて、下記のコードを入れます。
私たちはここで何をしましたか?
私たちは既に私たちのユーザーモデルを管理しています。その中で、私達は2つの関数を作って、それぞれcreate_と言います。userとcreate_superuser
名前の通りに考えて、create(u)ユーザーは新しいユーザーを作成し、is_を通じてスタッフとis_superuserはtrueに設定してcreate_を使用します。スーパーユーザーを作成します。
社長の後で、私達は通常のモードがあります。
私たちはユーザー名をnoneに設定します。私たちはユーザー名を含めたくないからです。
その中のUSERNAME_FIELDは私たちが「電子メール」と宣言しています。これは唯一のはずです。
session_tokenはオプションフィールドです。私はそこにいます。私のカスタムトークンを作っています。
models.pyの最後の行はCustomeUserがUserManagerの対象であることを示しています。
大事なこと
モデルを作成したら、settings.pyファイルを開き、その中に一行を追加します。
最後のステップ
移動コマンドを実行してスーパーユーザを作成することができます。
管理者に登録することを忘れないでください。
何かアドバイスがありましたら、教えてください。
git:https://github.com/theshubhagrwl/django_customアメリカ.アプリ
締め括りをつける
ここでは、Django 3のユーザーモデルに関する記事を紹介します。これまでの記事を検索したり、下記の関連記事を見たりしてください。これからも応援してください。
こんにちは、この文章ではDjango 3にユーザーモデルを作成し、Django Adminのデフォルト登録機能も変更します。私たちはメールとパスワードでログインします。
動機
私は自分のアプリケーションのために「ユーザー定義」を作成しなければなりません。モデルを作ることができますが、問題はクリッテッパーコマンドが正常に動作しません。それを調整するために、大量の研究をしなければなりません。問題は当時の資源の大半が時代遅れになっていたので、この文章を書くことにしました。
GitHub倉庫を作りましたので、よろしければ、そのまま使ってもいいです。
始めましょう
まず、Django Projectを作成し、usersというアプリケーションを作成します。
今から私たちはユーザーアプリケーションでmodels.pyファイルの編集を開始できます。
編集する前に理論的な準備をしておきます。
Djangoの中のマネージャーは何ですか?
Managerは、このインターフェースを通じてデータベースクエリ操作をDjangoモデルに提供するインターフェースです。Djangoアプリの各モデルには少なくとも一つのManagerがあります。Django Docs
簡単に言えば、マネージャーはモデルを管理する方法を提供してくれました。モデルをManager類のサブクラスにすることで実現できます。マネージャクラスは、クリッテッパーなどのコマンドを編集できるところです。
今はmodels.pyを開いて、下記のコードを入れます。
from django.db import models
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager, PermissionsMixin
class UserManager(BaseUserManager):
def create_user(self, email, password=None):
"""
Creates and saves a User with the given email and password.
"""
if not email:
raise ValueError('Users must have an email address')
user = self.model(
email=self.normalize_email(email),
)
user.set_password(password)
user.save(using=self._db)
return user
def create_superuser(self, email, password):
"""
Creates and saves a superuser with the given email and password.
"""
user = self.create_user(
email,
password=password,
)
user.is_staff = True
user.is_superuser = True
user.save(using=self._db)
return user
class CustomUser(AbstractBaseUser, PermissionsMixin):
name = models.CharField(max_length=50, default='Anonymous')
email = models.EmailField(max_length=100, unique=True)
username = None
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
session_token = models.CharField(max_length=10, default=0)
active = models.BooleanField(default=True)
# a admin user; non super-user
is_staff = models.BooleanField(default=False)
is_superuser = models.BooleanField(default=False) # a superuser
created_at = models.DateTimeField(
auto_now_add=True, blank=True, null=True)
updated_at = models.DateTimeField(auto_now=True)
objects = UserManager()
ここで注意する一番重要なことはis_です。スタッフとis_superuser属性その中に入力ミスがあるとデバッグが難しくなります。私たちはここで何をしましたか?
私たちは既に私たちのユーザーモデルを管理しています。その中で、私達は2つの関数を作って、それぞれcreate_と言います。userとcreate_superuser
名前の通りに考えて、create(u)ユーザーは新しいユーザーを作成し、is_を通じてスタッフとis_superuserはtrueに設定してcreate_を使用します。スーパーユーザーを作成します。
社長の後で、私達は通常のモードがあります。
私たちはユーザー名をnoneに設定します。私たちはユーザー名を含めたくないからです。
その中のUSERNAME_FIELDは私たちが「電子メール」と宣言しています。これは唯一のはずです。
session_tokenはオプションフィールドです。私はそこにいます。私のカスタムトークンを作っています。
models.pyの最後の行はCustomeUserがUserManagerの対象であることを示しています。
大事なこと
モデルを作成したら、settings.pyファイルを開き、その中に一行を追加します。
AUTH_USER_MODEL = 'users.CustomUser'
DjangoはAUTH_を通過させます。USER_MODEL設定は、デフォルトのユーザーモデルをカバーするために、カスタムモデルの値を提供します。この点線はDjangoアプリケーションの名前を説明しています。APPSでは、ユーザーモデルとしてDjangoモデルの名前を使用したいです。Djangoドキュメント最後のステップ
移動コマンドを実行してスーパーユーザを作成することができます。
py manage.py makemigrations
py manage.py migrate
py manage.py createsuperuser
メールとパスワードを要求します。詳細に説明する。管理者に登録することを忘れないでください。
admin.site.register(CustomUser)
サーバを実行して、管理パネルにメールとパスワードでログインできます。何かアドバイスがありましたら、教えてください。
git:https://github.com/theshubhagrwl/django_customアメリカ.アプリ
締め括りをつける
ここでは、Django 3のユーザーモデルに関する記事を紹介します。これまでの記事を検索したり、下記の関連記事を見たりしてください。これからも応援してください。