尝试使用外键引用查询所有对象,并引用其某个字段中具有特定值的条目

时间:2014-05-18 21:58:12

标签: python django

标题可能看起来有点令人困惑。但是,我想要做的很简单。我有以下型号:

class ListEntry(models.Model):
    name = models.CharField(max_length=64)
    expire_date = models.DateField('date of expiration')
    create_date = models.DateField('date created')

class ListWarning(models.Model):
    mailing_list = models.ForeignKey(ListEntry)
    first_warning = models.BooleanField()
    last_warning = models.BooleanField()

我想查询引用具有特定名称的邮件列表的List Warning对象。这是一个例子:

first_warning_list = ListWarning.objects.filter(mailing_list.name='PH_212', first_warning=True, last_warning=False)

然而,由于某种原因,python抱怨语法错误:

first_warning_list = ListWarning.objects.filter(mailing_list.name='PH_212', first_warning=True, last_warning=False)
SyntaxError: keyword can't be an expression

执行此查询的语法正确方法是什么?

1 个答案:

答案 0 :(得分:2)

使用双下划线而不是点符号来引用mailing_list名称

first_warning_list = ListWarning.objects.filter(mailing_list__name='PH_212', first_warning=True, last_warning=False)

文档here.

  

Django提供了一种强大而直观的方式来“跟踪”查找中的关系,注意事项   在幕后自动为您提供SQL JOIN。只是为了跨越关系   使用模型间相关字段的字段名称,用双下划线分隔,   直到你到达你想要的地方。