gpt4 book ai didi

python - Django 外键 : is it possible to ask for a name instead of an id?

转载 作者:太空宇宙 更新时间:2023-11-04 10:32:36 25 4
gpt4 key购买 nike

我的问题是关于 Django 模型和外键的。我搜索了类似的问题,但似乎没有找到。

我的模型如下:

class Matches(models.Model):
day = models.ForeignKey('Day')
team_home = models.ForeignKey('Team', related_name="home_set")
team_away = models.ForeignKey('Team', related_name="away_set")
golH = models.IntegerField(null=True)
golA = models.IntegerField(null=True)

class Team(models.Model):
league = models.ForeignKey('League')
manager = models.ForeignKey(User)
name = models.CharField(max_length=20)

现在,有没有办法在我调用时获取团队名称而不是 id:

Matches.objects.filter(day=1).values()

作为替代:有没有办法在 Matches 类中添加两个属性,例如:类匹配(模型。模型):...

def team_home_name(self)
return self.team_home.name

def team_home_away(self)
return self.team_away.name

并在我打电话时将它们放入字典中:

Matches.objects.filter(day=1).values()

注意事项:我想将团队 ID 保留为外键。我需要在字典中包含团队名称,因为我想传递给模板的是团队名称而不是团队 ID。我知道我可以在将字典传递给模板的 View 中使用所需信息构建一个新字典,但如果有办法在模型级别使用一些 django 技巧来做到这一点,那就更好了。

谢谢。

最佳答案

正如布鲁诺提到的,您可以将对象直接传递给模板。但是,使用 values() 您也可以选择决定什么是字典值。例如:

Matches.objects.filter(day=1).values('team_home__name','team_away__name')

关于python - Django 外键 : is it possible to ask for a name instead of an id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25483914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com