【Django】Userモデルに使えるフィールド名・ユーザー登録・ログインの仕方
はじめに
この記事はDjango初級者脱却を目指す筆者が同じく初心者の方に向けた勉強メモです。言葉選びや解釈に間違いの可能性があります。
触れること
- Userモデルとは
- userの作り方
- ログイン/ログアウトの実装
Userモデルとは
DjangoではUser管理用のデータベースがデフォルトで入っており、手間なく認証やユーザ管理を行うことが可能となっています。
Userモデルは以下のような継承関係にあり、以下に示すフィールド名を持ちます。
※ちなみにこの図はこちらの本を参考にさせていただきました。
https://www.amazon.co.jp/dp/B07GK7BWB7/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1
また、他のmodelオブジェクト同様にしてデータにアクセスできます。
from django.contrib.auth.models import User
#ちなみにgetメソッドは値が取得できないとエラーを返す
User.objects.get(username='admin')
User.objects.get(pk=1)
#ちなみにallメソッドはクエリセットオブジェクトを返す
#リストのような使い方ができる
User.objects.all()
Userの作り方
- コンソールで作る
(virtualenv)~~~~~$python manage.py createsuperuser
Adminサイトにアクセスできるすべての権限を持つスーパーユーザを作ります。
from django.contrib.auth.models import User
User.objects.create_user(username,email,password)
#ユーザ登録したこの直後にログインしたページへ飛ばしたいときは
#user = User.objects.create_user(username,email,password)
#とすると便利
ログイン/ログアウト
from django.contrib.auth import authenticate, login, logout
def loginfunc(request):
#Userモデルに一致すればオブジェクトを、なければnoneを返すので以下のように
#if文を使う
#Userを登録した直後なら
#user = User.objects.create_user(username,email,password)で代用可
user = authenticate(request, username=username, password=password)
if user is not None:
#ログイン
login(request, user)
return redirect('userpage')
else:
return redirect('signup')
def logoutfunc(request):
#ログアウト
logout(request)
return redirect('signup')
Author And Source
この問題について(【Django】Userモデルに使えるフィールド名・ユーザー登録・ログインの仕方), 我々は、より多くの情報をここで見つけました https://qiita.com/Suchmos7/items/90aa77d800703a223fff著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .