Django 查询集外键
Django queryset foreign key
在 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)
如果我希望用户能够根据流派搜索歌曲,我该怎么做?
例如,下面是我想做的,但我知道它不起作用,因为歌曲 table 的流派列是一个 ID,而不是关键字。
song = models.Songs.objects.get(genre='Jazz')
使用 double underscore syntax 到达相关模型中的 genre
字段:
Songs.objects.filter(genre__genre='Jazz')
为了可读性和一致性,考虑将 genre
字段重命名为 name
:
class Genres(models.Model):
name = models.CharField(max_length=100)
在 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)
如果我希望用户能够根据流派搜索歌曲,我该怎么做?
例如,下面是我想做的,但我知道它不起作用,因为歌曲 table 的流派列是一个 ID,而不是关键字。
song = models.Songs.objects.get(genre='Jazz')
使用 double underscore syntax 到达相关模型中的 genre
字段:
Songs.objects.filter(genre__genre='Jazz')
为了可读性和一致性,考虑将 genre
字段重命名为 name
:
class Genres(models.Model):
name = models.CharField(max_length=100)