Bagaimana cara mendapatkan id pengguna yang sedang login?
di models.py
:
class Game(models.model):
name = models.CharField(max_length=255)
owner = models.ForeignKey(User, related_name='game_user', verbose_name='Owner')
di views.py
:
gta = Game.objects.create(name="gta", owner=?)
Jawaban:
Pertama, pastikan Anda memiliki
SessionMiddleware
danAuthenticationMiddleware
middlewares ditambahkan keMIDDLEWARE_CLASSES
pengaturan Anda .Arus
user
ada dalamrequest
objek, Anda bisa mendapatkannya dengan cara:request.user
akan memberi AndaUser
objek yang mewakili pengguna yang saat ini masuk. Jika pengguna saat ini tidak masuk,request.user
akan disetel ke instanceAnonymousUser
. Anda dapat membedakannya dengan bidangnyais_authenticated
, seperti:sumber
User
model .Anda dapat mengakses pengguna yang saat ini masuk dengan menggunakan kode berikut:
sumber
Dengan asumsi Anda merujuk ke Pengguna Auth Django , dalam tampilan Anda:
sumber
Saya menulis ini dalam tampilan ajax, tetapi ini adalah jawaban yang lebih luas memberikan daftar pengguna yang saat ini masuk dan keluar.
The
is_authenticated
atribut selalu kembaliTrue
untuk pengguna saya, yang saya kira diharapkan karena hanya memeriksa AnonymousUsers, tapi itu membuktikan berguna jika Anda mengatakan mengembangkan aplikasi chat di mana Anda perlu login pengguna ditampilkan.Ini memeriksa sesi yang kedaluwarsa dan kemudian mencari tahu pengguna mana yang mereka miliki berdasarkan
_auth_user_id
atribut yang didekodekan :sumber