Django 查询集外键
Posted
技术标签:
【中文标题】Django 查询集外键【英文标题】:Django queryset foreign key 【发布时间】:2015-03-09 03:57:46 【问题描述】:在 Django 中反向查找外键关系的正确方法是什么?例如,假设我有以下 2 个模型。
class Songs(models.Model):
title = models.CharField(max_length=200)
artist = models.CharField(max_length=200)
genre = models.ForeignKey('Genres')
class Genres(models.Model):
genre = models.CharField(max_length=100)
如果我希望用户能够根据流派搜索歌曲,我会怎么做?
例如,下面是我想要做的,但我知道它不起作用,因为 Songs 表的流派列是 ID,而不是关键字。
song = models.Songs.objects.get(genre='Jazz')
【问题讨论】:
你应该尝试用单数命名你的模型类。 【参考方案1】:使用double underscore syntax 到达相关模型中的genre
字段:
Songs.objects.filter(genre__genre='Jazz')
为了可读性和一致性,考虑将genre
字段重命名为name
:
class Genres(models.Model):
name = models.CharField(max_length=100)
【讨论】:
以上是关于Django 查询集外键的主要内容,如果未能解决你的问题,请参考以下文章