[英]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
訪問它。 如何通過用戶名訪問Profile
的mtg_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.