Django模型设置,使用foreignkey的foreignkey

2024-06-02 13:28:22 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我正在做一个学习django的小项目,我对设置db感到非常困惑

我有3个视频类别: 切尔西、巴塞罗那和皇家马德里

在这3个视频中,有几个季节: 切尔西-第1季第2季…第n季 巴塞罗那和皇家马德里也一样

在这个季节,有视频

到目前为止,我就是这样设置的,但很困惑

class Team(models.Model):
    name = models.CharField(max_length=255)


class Season(models.Model):
    name = models.CharField(max_length=255)
    team = models.ForeignKey(Team)
class Content(models.Model):
    name = models.CharField(max_length=255)
    season = models.ForeignKey(Season)

所以外键的内容就是外键。这是有效的方法吗?如何从内容中获取团队名称


Tags: name内容视频modelmodelslengthmaxteam
2条回答

您必须以任何方式检索内容对象,例如:

content = Content.objects.get(id=0)

然后,您可以通过以下方式引用团队名称:

cotent_name = content.season.team.name

此外,如果要按团队名称筛选内容,可以执行以下操作:

barca_contents = Content.objects.filter(season__team__name="Barcelona")

这将返回一个包含巴塞罗那队所有内容的查询集

遵循一个关系(在两个方向上)来获取所需的数据是完全可以的。 这实际上是关系数据库的基本思想

您可能希望利用QuerySets的select_related()方法来获取与初始查询相关的模型,因为您仍然需要获取它

相关问题 更多 >