2017-10-17 165 views
0

我有代碼,就像是人在登錄以下內容:是怎麼開始從用戶的配置文件在Django

if request.method == 'POST': 

username = request.POST.get('username') 
password = request.POST.get('password') 

user = authenticate(username=username, password=password) 

if user: 
    # Check it the account is active 
    if user.is_active: 

     # Log the user in. 
     login(request, user) 

我已經擴展了用戶創建一個用戶配置。它包含其他信息。例如:地址,城市,州等

如何從這種情況下提取用戶配置文件?對於Eclipse下的Java,如果我輸入「user」,則會看到將應用於對象「user」的所有有效方法。

PyCharm沒有出現這種功能。

就這麼說,如何找到與用戶相關的配置文件信息呢?

TIA

下面是簡介型號代碼:

class UserProfileInfo (models.Model): 
    class Meta: 

     db_table = 'mstrauthdjprofile' 
     db_tablespace = 'PSAPUSR1001' 

    user = models.OneToOneField(User) 

    restrole = models.BigIntegerField(blank=True, null=True, default=0) 

    profilepic = models.ImageField(upload_to='profile_pics', blank=True) 

    lastpgprocno = models.BigIntegerField(blank=True, null=True, default=-1) 
    currentpgprocno = models.BigIntegerField(blank=True, null=True, default=-1) 
    nextpgprocno = models.BigIntegerField(blank=True, null=True, default=1) 

    reclocktype = models.BigIntegerField(blank=True, null=True, default=0) 
    reclockid = models.BigIntegerField(blank=True, null=True, default=0) 

    def __str__(self): 
     return self.user.username 
+0

添加您的個人資料模型代碼 –

+0

@NeErAj庫馬爾 - 已將其添加到消息中。有任何想法嗎? –

+1

嘗試'user.userprofileinfo'獲取配置文件對象,第一個'user'應該是django的默認用戶實例 –

回答

1

OneToOneField s爲總是從自己的同行進行訪問。

user = authenticate(username=username, password=password) 
user.userprofileinfo 

user = User.objects.first() 
user.userprofileinfo 

user_profile_info = UserProfileInfo.objects.first() 
user_profile_info.user 

你可以在你的代碼中插入一個斷點(我相信PyCharm應該有一個自動化的方式來處理這個問題)使用像PDB調試器:

import pdb; pdb.set_trace() 

,這將使你與互動當前範圍。您可以查看哪些屬性一個對象具有__dict__

user.__dict__ 
{'username': 'user', 'id': 1, ...} 

也可以考慮更強大的/交互式調試器像IPython的或bpython,具有自動完成內置的。

相關問題