django.contrib.auth
¶
Dokumen ini menyediakan bahan acuan API untuk komponen-komponen dari sistem otentifikasi Django. Untuk rincian lebih pada penggunaan dari komponen-komponen ini atau bagaimana menyesuaikan autentifikasi dan otorisasi lihat authentication topic guide.
Model User
¶
-
class
models.
User
¶
Bidang¶
-
class
models.
User
Obyek
User
mempunyai bidang berikut:-
username
¶ Diwajibkan. 150 karakter atau lebih sedikit. Nama pengguna dapat mengandung alfanumerik,
_
,@
,+
,.
dan-
karakter.max_length
harus cukup untuk banyak penggunaan kasus. Jika anda butuh panjang lebih, harap gunakan custom user model. Jika anda menggunakan MySQL dengan penyandianutf8mb4
(dianjurkan untuk dukungan Unicode sesuai), tentukan kebanyakanmax_length=191
karena MySQL hanya dapat membuat unik indeks dengan 192 karakter dalam kasus itu secara awalan.
-
first_name
¶ Pilihan (
blank=True
). 150 karakter atau sedikit.
-
last_name
¶ Pilihan (
blank=True
). 150 karakter atau sedikit.
-
email
¶ Pilihan (
blank=True
). Alamat surel.
-
password
¶ Diwajibkan. Sebuah campuran dari, dan metadata tentang, sandi. (Django tidak menyimpan sandi mentah.) Sandi mentah dapat berubah-ubah lama dan dapat mengandung karakter apapun. Lihat password documentation.
-
user_permissions
¶ Hubungan banyak-ke-banyak ke
Permission
-
is_staff
¶ Boolean. Menandai apakah pengguna ini dapat mengakses situs admin.
-
is_active
¶ Boolean. Menunjukkan apakah akun pengguna ini harus dianggap aktif. Kami menganjurkan bahwa anda menyetel bendera ini menjadi
False
daripada menghapus akun-akun; cara itu, jika aplikasi anda mempunyai foreign key apapun ke pengguna, foreign key tidak akan rusak.Ini tidak diperlukan mengendalikan apakah atau bukan pengguna dapat masuk. Backend autentifikasi tidak diwajibkan untuk memeriksa untuk tanda
is_active
tetapi backend awalan (ModelBackend
) danRemoteUserBackend
melakukannya. Anda dapat menggunakan class:~django.contrib.auth.backends.AllowAllUsersModelBackend atauAllowAllUsersRemoteUserBackend
jika anda ingin mengizinkan pengguna tidak aktif untuk masuk. Dalam kasus ini, anda akan juga ingin menyesuaikanAuthenticationForm
digunakan olehLoginView
ketika itu menolak pengguna tidak aktif. Waspada bahwa metode pemeriksaan-perizinan sepertihas_perm()
dan autentifikasi dalam admin Django semua mengembalikanFalse
untuk pengguna tidak aktif.
-
is_superuser
¶ Boolean. Menunjuk bahwa pengguna ini mempunyai semua perizinan tanpa secara jelas menetapkan mereka.
-
last_login
¶ Tanggalwaktu dari masuk terakhir pengguna.
-
date_joined
¶ Sebuah datetime menunjukkan ketika akun telah dibuat. Adalah disetel ke tanggal/waktu saat ini secara awalan ketika akun dibuat.
-
Atribut¶
-
class
models.
User
-
is_authenticated
¶ Atribut hanya-baca yang selalu
True
(sebagai lawanAnonymousUser.is_authenticated
yang selaluFalse
). Ini adalah cara untuk memberitahu jika pengguna telah diotentifikasi. Ini tidak berarti perizinan apapun dan tidak memeriksa jika pengguna adalah aktif atau mempunyai sesi sah. Meskipun secara biasa anda akan memeriksa atribut ini padarequest.user
untuk menemukan apakah itu telah dikumpulkan olehAuthenticationMiddleware
(mewakili pengguna masuk saat ini), anda harus mengetahui atribut ini adalahTrue
untuk tiap instanceUser
.
-
is_anonymous
¶ Atribut hanya-baca yaitu selalu
False
. Ini adalah jalan untuk membedakan obyekUser
andAnonymousUser
. Umumnya, anda harus memilih menggunakanis_authenticated
pada atribut ini.
-
Cara¶
-
class
models.
User
-
get_username
()¶ Mengembalikan nama pengguna untuk pengguna. Sejak model
User
dapat bertukar, anda haus menggunakan metode ini daripada mengacu atribut nama pengguna secara langsung.
-
get_full_name
()¶ Mengembalikan
first_name
ditambahlast_name
, dengan spasi diantaranya.
-
get_short_name
()¶ Mengembalikan
first_name
.
-
set_password
(raw_password)¶ Setel sandi pengguna ke string mentah yang diberikan, merawat campuran sandi. Tidak menyimpan obyek
User
.Ketika
raw_password
adalahNone
, sandi akan disetel menjadi sebuah sandi tidak berguna, seperti jikaset_unusable_password()
digunakan.
-
check_password
(raw_password)¶ Mengembalikan
True
jika deretan karakter mentah yang diberikan adalah sandi benar untuk pengguna. (Ini merawat hash sandi dalam membuat perbandingan.)
-
set_unusable_password
()¶ Tandai pengguna sebagai tidak mempunyai sandi tidak disetel. Ini tidak sama seperti memiliki string kosong untuk sebuah sandi.
check_password()
untuk pengguna ini tidak akan pernah mengembalikanTrue
. Tidak menyimpan obyekUser
.Anda mungkin butuh ini jika otentifikasi untuk aplikasi anda memakan tempat terhadap sumber luar yang ada seperti pelipat LDAP.
-
has_usable_password
()¶ Mengembalikan
False
jikaset_unusable_password()
telah dipanggil untuk pengguna ini.
-
get_user_permissions
(obj=None)¶ Mengembalikan sekumpulan string perizinan yang pengguna miliki secara langsung.
Jika
obj
dilewatkan, hanya mengembalikan perizinan pengguna untuk objek khusus ini.
-
get_group_permissions
(obj=None)¶ Mengembalikan deretan karakter kumpulan perizinan yang pengguna punyai, melalui kelompok mreka.
Jika
obj
diloloskan, hanya mengembalikan perizinan kelompok untuk obyek tertentu ini.
-
get_all_permissions
(obj=None)¶ Mengembalikan sekumpulan deretan karakter perizinan yang pengguna punyai, kedua melalui perizinan kelompok dan pengguna.
Jika
obj
diloloskan. hanya mengembalikan perizinan untuk obyek tertentu ini.
-
has_perm
(perm, obj=None)¶ Returns
True
if the user has the specified permission, where perm is in the format"<app label>.<permission codename>"
. (see documentation on permissions). If the user is inactive, this method will always returnFalse
. For an active superuser, this method will always returnTrue
.Jika
obj
diloloskan, metode ini tidak akan memeriksa untuk sebuah perizinan untuk model, tetapi untuk obyek tertentu ini.
-
has_perms
(perm_list, obj=None)¶ Returns
True
if the user has each of the specified permissions, where each perm is in the format"<app label>.<permission codename>"
. If the user is inactive, this method will always returnFalse
. For an active superuser, this method will always returnTrue
.Jika
obj
diloloskan, metode ini tidak akan memeriksa untuk perizinan-perizinan untuk model, tetapi untuk obyek tertentu.
-
has_module_perms
(package_name)¶ Returns
True
if the user has any permissions in the given package (the Django app label). If the user is inactive, this method will always returnFalse
. For an active superuser, this method will always returnTrue
.
-
email_user
(subject, message, from_email=None, **kwargs)¶ Mengirim sebuah surel ke pengguna. Jika
from_email
adalahNone
, Django menggunakanDEFAULT_FROM_EMAIL
.**kwargs
apapun dilewatkan ke panggilansend_mail()
pokok
-
Pengelola metode¶
-
class
models.
UserManager
¶ Model
User
mempunyai pengelola penyesuaian yang mempunyai metode pembantu berikut (sebagai tambahan pada metode disediakan olehBaseUserManager
):-
create_user
(username, email=None, password=None, **extra_fields)¶ Buat, simpan dan mengembalikan
User
.username
danpassword
disetel sesuai yang diberikan. Bagian ranah dariemail
adalah otomatis mengubah ke huruf kecil, dan mengembalikan obyekUser
akan menyetelis_active
keTrue
.Jika tidak ada sandi disediakan,
set_unusable_password()
akan dipanggil.Argumen kata kunci
extra_fields
dilewatkan melalui metodeUser
’s__init__
untuk mengizinkan mengatur bidang yang berubah-ubah pada custom user model.Lihat Membuat pengguna sebagai contoh penggunaan.
-
create_superuser
(username, email=None, password=None, **extra_fields)¶ Sama seperti
create_user()
, but setsis_staff
danis_superuser
menjadiTrue
.
-
with_perm
(perm, is_active=True, include_superusers=True, backend=None, obj=None)¶ Returns users that have the given permission
perm
either in the"<app label>.<permission codename>"
format or as aPermission
instance. Returns an empty queryset if no users who have theperm
found.If
is_active
isTrue
(default), returns only active users, or ifFalse
, returns only inactive users. UseNone
to return all users irrespective of active state.Jika
include_superusers
adalahTrue
(awalan), hasil akan menyertakan pengguna super.If
backend
is passed in and it's defined inAUTHENTICATION_BACKENDS
, then this method will use it. Otherwise, it will use thebackend
inAUTHENTICATION_BACKENDS
, if there is only one, or raise an exception.
-
Obyek AnonymousUser
¶
-
class
models.
AnonymousUser
¶ django.contrib.auth.models.AnonymousUser
adalah kelas yang menerapkan antarmukadjango.contrib.auth.models.User
, dengan perbedaan ini:- id selalu
None
. username
adalah selalu string kosong.get_username()
selalu mengembalikan deretan kalimat kosong.is_anonymous
adalahTrue
daripadaFalse
.is_authenticated
adalahFalse
daripadaTrue
.is_staff
danis_superuser
adalah selaluFalse
.is_active
adalah selaluFalse
.groups
danuser_permissions
adalah selalu kosong.set_password()
,check_password()
,save()
dandelete()
memunculkanNotImplementedError
.
- id selalu
In practice, you probably won't need to use
AnonymousUser
objects on your own, but
they're used by web requests, as explained in the next section.
Model Permission
¶
-
class
models.
Permission
¶
Bidang¶
Obyek Permission
mempunyai bidang berikut:
Cara¶
Obyek Permission
mempunyai standar cara akses-data seperti lainnya Django model.