User Object
User オブジェクトは認証システムの中核です。ユーザー オブジェクトは通常、Web サイトのユーザーを表し、アクセス制御、登録ユーザー、作成者とコンテンツの関連付けなどをサポートするために使用されます。たとえば、スーパーユーザー (「スーパーユーザー」) または (「スタッフ」) ユーザーは、異なる属性が設定された同じユーザー オブジェクトです。
デフォルトフィールド フィールド
username
ユーザー名、必須フィールド。 30 文字以内で、_、@、+、- の文字を含めることができます。
名
オプション。 30 文字以下。
姓
はオプションです。 30 文字以内。
email
E メール、オプション。メールアドレス。
passWord
パスワード、必須。 Django はパスワードを平文で保存せず、代わりにハッシュを保存します。
グループ
ユーザーグループ。 Group
user_permissions
ユーザー権限に対する多対多の関係。 Permission への多対多の関係
groups = models.ManyToManyField(Group, verify_name=_('groups'),
blank=True, help_text=_('このユーザーが属するグループ。ユーザーは '
'各グループに付与されているすべての権限を取得します。 s.manytomanyfield (Permission,
Verbose_name = _ ('User Permissions'), Blank =True,
help_text=_('このユーザーの特定の権限。'),
relationship_name= "user_set", relationship_query_name="user")
is_staff
ブール値。ユーザーが管理管理インターフェイスにアクセスできるかどうかを決定します。デフォルトは False です。
is_active
ブール値。 ユーザーがアクティブであるかどうかに関係なく、デフォルトは True。通常、ユーザーは削除されませんが、ユーザーの is_active は False に設定されます。
is_superuser
ブール値。デフォルトは False です。 True に設定すると、ユーザーは完全な権限を取得します。
def has_perm(self, perm, obj=None):
"""
は利用可能なすべての認証バックエンドをクエリしますが、いずれかの
バックエンドが True を返した場合はすぐに返します。単一のauthバックエンドから許可を得ているユーザーは、一般的に許可を得ると想定されます。この特定のオブジェクトの許可はチェックされています。 # それ以外の場合は、バックエンドを確認する必要があります。デフォルトは現在時刻です。
user.last_login = timezone.now()
date_joined
ユーザーが作成された時刻
Methods
is_anonymous()
匿名ユーザーかどうか。
ユーザーが検証に合格してログインしたかどうか。
get_full_name()
first_name と last_name (間にスペースを入れて) を返します。
get_short_name()
set_password(raw_password)
パスワードを確認してください。
get_group_permissions(obj=None)
ユーザー グループの権限のコレクションを返します。
get_all_permissions(obj=None)
has_perm(perm, obj=None)
has_perms(perm_list, obj=None)
ユーザーの作成
User オブジェクトのパスワードは平文で保存されないため、User オブジェクトの作成は通常の Model 作成とは異なり、組み込みの create_user() メソッドを使用する必要があります。
>>> django.contrib.auth.models からインポート
>>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
# この時点で、user はすでにデータベースに保存されているユーザー オブジェクトです
# 他のフィールドを変更したい場合は、引き続きその属性を変更できます
>>> Lennon'
>>> user.save()
>>> u = User.objects.get(username='john')
>>> '新しいパスワード')
>>> u.save()
user =authenticate(username='john',password='secret')
if user is not None:
# ユーザーのパスワードが検証されました
if user.is_active:
print ("ユーザーは有効で、アクティブで、認証されています")
else:
print("パスワードは有効ですが、アカウントは無効になっています!")
else:
# 認証システムはユーザー名とパスワードを検証できませんでした
print (「ユーザー名とパスワードが間違っていました。」)