User物件
User物件是認證系統的核心。用戶物件通常用來代表網站的用戶,並支援例如存取控制、註冊用戶、關聯創建者和內容等。在Django認證框架中只有一個使用者類,例如超級使用者('superusers’)或('staff')使用者只不過是相同使用者物件設定了不同屬性而已。
缺省欄位Fields
username
使用者名稱,必需欄位。 30個字元或更少,可以包含 _, @, +, . 和 - 字元。
first_name
可選。 30 characters or fewer.
last_name
可選。 30 characters or fewer.
email
郵箱,可選。 Email address.
passWord
密碼,必需。 Django不是以明文儲存密碼的,而是儲存雜湊值。
groups
用戶群組。 Many-to-many relationship to Group
user_permissions
使用者權限。 Many-to-many relationship to Permission
groups = models.ManyToManyField(Group, verbose_name=_('groups'),
willbank=True, will text ' 。 user_permissions = models.ManyToManyField(Permission,
verbose_name=_('user permissions'), blank =True,
help_text=_('Specific permissions for this user.'),
related_name="user_set", related_query_name="user")
。決定使用者是否可以存取admin管理介面。預設False。
is_active
is_superuser
def has_perm(self, perm, obj=None):
Returns True if the user has the specified mission. backends, but returns immediately if any
backend returns True. Thus, a user who has permission from a single
# Active superusers have all permissions.
if self. is_active and self.is_superuser:
return True
# Otherwise we need to check the backends.
# Otherwise we need to check the backends.
last_login
上一次的登入時間,為datetime對象,預設為當時的時間。
user.last_login = timezone.now()
使用者建立的時間
方法Methods
is_anonymous()
is_anonymous()
是否為匿名使用者。
is_authenticated()
用戶是否通過驗證,登陸。 get_full_name()回傳first_name plus the last_name, with a space in between.
回傳first_name.
回傳first_name.
check_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不同,需用內建的create_user()方法。
>>> from django.contrib.auth.models import User
>>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')
# Atuser this point, 腳# Atuser is a User object that has already been saved
# to the database. You can continue to change its attributes
# if you want to change other fields.
>>> user.last_name = 'Lennon'user> . ()
>>> u = User.objects.get(username='john')
>>> u.set_password('new password')
>>> u.save()
user = authenticate(username='john', password='secret')
if user is not None:
幫助 print 。
print ("The username and password were incorrect.")
以上就是Django使用者認證系統(一)User物件的內容,更多相關內容請關注PHP中文網(www.php.cn)!