2012-09-27 25 views
61

Şu anda oturum açmış kullanıcının kimliği nasıl edinilir? models.py yılındaŞu anda oturum açmış olan kullanıcı kimliği Django'da nasıl edinilir?

:

class Game(models.model): 
    name = models.CharField(max_length=255) 
    owner = models.ForeignKey(User, related_name='game_user', verbose_name='Owner') 

views.py yılında:

gta = Game.objects.create(name="gta", owner=?) 
+0

Olası kopyalar [Django, ben anlarım nasıl giriş yapmış olan kullanıcının?] (http://stackoverflow.com/questions/1477319/in-django-how-do-i-know- --açmış in-us er) –

cevap

108

Öncelikle MIDDLEWARE_CLASSES ayarı eklendi SessionMiddleware ve AuthenticationMiddleware ara katman olduğundan emin olun. o anda oturum açmış kullanıcı temsil eden bir User nesneyi verecektir

def sample_view(request): 
    current_user = request.user 
    print current_user.id 

request.user:

akım user sen bunu elde edebilirsiniz, request nesnesidir. Bir kullanıcı şu anda giriş yapmadıysa, request.user, AnonymousUser'un bir örneğine ayarlanacaktır. Çok gibi is_authenticated() onları ayırt edebilirsiniz:

if request.user.is_authenticated(): 
    # Do something for authenticated users. 
else: 
    # Do something for anonymous users. 
+0

Referans: https://docs.djangoproject.com/en/1.7/topics/auth/default/#authentication-in-web-requests – aliteralmind

+1

Yabancı anahtar kullanıcı kimliğini bir modele ayarlamak istiyorsak ne olur? Şu anda kullanıcının kimliğine giriş yaptınız mı? –

+0

Artık ayarları güncellemenize gerek yok. https://docs.djangoproject.com/en/1.11/topics/auth/default/#authentication-in-web-requests –

5

senin görünümünde, Django en Auth User kastediyoruz varsayarsak:

def game(request): 
    user = request.user 

    gta = Game.objects.create(name="gta", owner=user) 
8

Aşağıdaki kodu kullanarak giriş yapan kullanıcılar Güncel erişebilir:

request.user.id 
ait
İlgili konular