所以我在做一个学习django的小项目,我对设置db感到很困惑。
我有3个视频类别: 切尔西,巴塞罗那和皇家马德里。
在3个视频中,有几个季节: 切尔西-season1 season2 ..... season 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)
因此,foreignkey外键的内容。这是有效的方法吗?如何从内容中获取团队名称?
答案 0 :(得分:0)
您必须以任何方式检索内容对象,例如像这样:
content = Content.objects.get(id=0)
然后您可以通过以下方式引用小组名称:
cotent_name = content.season.team.name
此外,如果您想按小组名称过滤内容,则可以执行以下操作:
barca_contents = Content.objects.filter(season__team__name="Barcelona")
这将返回带有巴塞罗那团队所有内容的QuerySet。
答案 1 :(得分:0)
遵循一个关系(双向)以获取所需的数据完全可以。 那实际上就是关系数据库的基本思想。
您可能需要利用QuerySets的select_related()方法来获取与初始查询相关的模型,因为无论如何都需要获取它。