2012-09-27 5 views
61

현재 로그인 한 사용자의 ID를 얻는 방법은 무엇입니까? models.py에서Django에서 현재 로그인 한 사용자의 사용자 ID를 얻는 방법은 무엇입니까?

:

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

views.py에서 :

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

가능한 복제 [장고에, 어떻게 알 수 있습니까 현재 로그인 한 사용자?] (http://stackoverflow.com/questions/1477319/in-django-how-do-i-know- 현재 로그인 한 우리 어) –

답변

108

먼저 당신이 당신의 MIDDLEWARE_CLASSES 설정에 추가 SessionMiddlewareAuthenticationMiddleware 미들웨어를 가지고 있는지 확인하십시오. 당신은 현재 로그인 된 사용자 나타내는 User 객체를 줄 것이다

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

request.user :

현재 user는하여 얻을 수 request 객체입니다. 사용자가 현재 로그인하지 않은 경우 request.userAnonymousUser의 인스턴스로 설정됩니다. 당신과 같이, is_authenticated()로 떨어져 말할 수 :

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

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

+1

외래 키 사용자 ID를 모델로 설정하려면 어떻게해야합니까? 현재 로그인 한 사용자의 ID입니까? –

+0

더 이상 설정을 업데이트 할 필요가 없습니다. https://docs.djangoproject.com/en/1.11/topics/auth/default/#authentication-in-web-requests –

5

보기에, 당신은 장고의 Auth User 언급하는 가정 :

def game(request): 
    user = request.user 

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

다음과 같은 코드를 사용하여 로그인 한 사용자가 현재 액세스 할 수 있습니다 :

request.user.id 
관련 문제