Django - 基于外键字段获取对象

Chr*_*isM 1 django foreign-keys

我需要基于一组字段获取单个模型对象,其中一个是ForeignKey. 所以如果我有以下模型:

class Composer(models.Model):
    name = models.CharField()
    dates =  models.CharField()
    nationality = models.CharField()
    period = models.CharField()

class Symphony(models.Model):
    composer = models.ForeignKey('Composer', related_name="symphonies", null=True)
    date = models.CharField()
    key = models.CharField()
    number = models.IntegerField()
    num_movements = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

然后如何Symphony根据其composernumber字段检索特定对象?我最初将 composer 作为一个 simple models.CharField(),所以我可以这样做:

Symphony.objects.get(composer='Bruckner', number=7)
Run Code Online (Sandbox Code Playgroud)

那么我如何使用 a 做等效的事情ForeignKey

Goc*_*cht 5

这应该有效,但您应该始终使用唯一值:

Symphony.objects.get(composer__name='Bruckner', number=7)
Run Code Online (Sandbox Code Playgroud)

在这里您可以找到双下划线符号 ( __) 的更多用法