我在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'
我做错了什么?
答案 0 :(得分:2)
schoolStatusOnDate_set
应为小写。
来自Django documentation: Following relationships “backward”:
如果模型具有
ForeignKey
,则外键模型的实例将有权访问返回第一个模型的所有实例的Manager
。默认情况下,此Manager
的名称为FOO_set
,其中FOO
是源模型名称,小写。
(强调我的)