2012-09-27 29 views
61

वर्तमान में लॉग इन किए गए उपयोगकर्ता की आईडी कैसे प्राप्त करें?Django में वर्तमान में उपयोगकर्ता के उपयोगकर्ता आईडी में लॉग इन कैसे करें?

models.py में

:

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

संभावित डुप्लिकेट [Django में, मैं कैसे पता चलेगा कि वर्तमान में लॉग-इन उपयोगकर्ता?] (http://stackoverflow.com/questions/1477319/in-django-how-do-i-know- -वर्तमान में प्रवेश के-हमें er) –

उत्तर

108

पहले सुनिश्चित करें कि आप SessionMiddleware और AuthenticationMiddleware middlewares अपने MIDDLEWARE_CLASSES सेटिंग को जोड़ा गया है बनाते हैं।

वर्तमान userrequest वस्तु में है, तो आप से प्राप्त कर सकते हैं:

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

request.user आप एक User वस्तु का प्रतिनिधित्व वर्तमान में लॉग-इन उपयोगकर्ता दे देंगे। यदि कोई उपयोगकर्ता वर्तमान में लॉग इन नहीं है, 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

क्या होगा यदि हम विदेशी कुंजी उपयोगकर्ता को एक मॉडल में सेट करना चाहते हैं जो कि है वर्तमान में उपयोगकर्ता की आईडी में लॉग इन है? –

+0

अब आपको सेटिंग्स को अपडेट करने की आवश्यकता नहीं है। https://docs.djangoproject.com/en/1.11/topics/auth/default/#authentication-in-web-requests –

5

मान लिया जाये कि आप Django के Auth User की बात कर रहे हैं, अपने दृश्य में:

def game(request): 
    user = request.user 

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

आप वर्तमान उपयोग कर सकते हैं निम्नलिखित कोड का उपयोग करके उपयोगकर्ता के लॉग इन:

request.user.id 
की