簡體   English   中英

用戶object沒有屬性

[英]User object has no attribute

我正在創建一個應用程序,用於管理本地業余愛好游戲商店的排名和 ELO 功能。 我正在使用 django 來編寫應用程序。 我在嘗試弄清楚如何從他們的名字訪問用戶的 model 時遇到了麻煩。

模型.py

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    mtg_currentELO = models.IntegerField(default=1000)
    mtg_highestELO = models.IntegerField(default=1000)
    mtg_lowestELO = models.IntegerField(default=1000)

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

視圖.py

def home(request):
    users = User.objects.all()
    
    if request.method == 'GET':

        user1 = User.objects.get(username=request.POST['player1']) 
        user2 = User.objects.get(username=request.POST['player2'])
        print(user1, user2) # DEBUG LINE -- it does find
        print(user1.mtg_currentELO) # DEBUG LINE -- it does NOT FIND

所以我想要完成的是從 user1 中找到mtg_currentELO 但是,我無法通過user1.mtg_currentELO訪問它。 如何通過用戶名訪問Profilemtg_currentELO屬性?

您應該像這樣為 OneToOneField 分配一個相關名稱:

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="assigned_profile")
    ...

那么您將能夠像user1.assigned_profile.mtg_currentELO一樣訪問它

您可以在此處找到詳細信息: https://docs.djangoproject.com/en/4.0/ref/models/fields/#django.db.models.OneToOneField

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM