Django:如何获得相关的外键设置?

时间:2015-07-06 09:22:27

标签: django foreign-keys

我在Django 1.8工作。我有这样的模型:

class School(models.Model):
    code = models.CharField(primary_key=True)
    name = models.CharField(max_length=200)

    class Meta:
        app_label = 'frontend'

class SchoolStatusOnDate(models.Model):
    school = models.ForeignKey(School)
    date = models.DateField()
    setting = models.IntegerField()

我想检索与特定学校相关的所有状态,我认为我应该能够using _set as described here,但它不起作用。这是我的代码:

s = School.objects.filter(code='A81018')
now = datetime.datetime.now()
SchoolStatusOnDate.objects.create(school=s, date=now, setting=4)
print s.schoolStatusOnDate_set.all()

但这在最后一行给出了以下错误:

AttributeError: 'School' object has no attribute 'schoolStatusOnDate_set'

我做错了什么?

1 个答案:

答案 0 :(得分:2)

schoolStatusOnDate_set应为小写。

来自Django documentation: Following relationships “backward”

  

如果模型具有ForeignKey,则外键模型的实例将有权访问返回第一个模型的所有实例的Manager。默认情况下,此Manager的名称为FOO_set,其中FOO是源模型名称,小写

(强调我的)