【问题标题】:Django queryset foreign keyDjango 查询集外键
【发布时间】: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')

【问题讨论】:

  • 你应该尝试用单数命名你的模型类。

标签: django django-models django-orm django-queryset


【解决方案1】:

使用double underscore syntax 到达相关模型中的genre 字段:

Songs.objects.filter(genre__genre='Jazz')

为了可读性和一致性,考虑将genre 字段重命名为name

class Genres(models.Model):
    name = models.CharField(max_length=100)

【讨论】:

    猜你喜欢
    • 2015-01-25
    • 2013-09-27
    • 1970-01-01
    • 2015-07-30
    • 2013-09-17
    • 2011-02-01
    • 2018-09-01
    • 2020-06-22
    • 2018-07-06
    相关资源
    最近更新 更多