django: связанное поле имеет недопустимый поиск

У меня есть следующие модели

class SchoolClass(models.Model):
    id = models.AutoField(primary_key = True)
    class_name = models.TextField()
    level = models.IntegerField()
    taught_by = models.ManyToManyField(User,related_name="teacher_teaching",through='TeachSubject')
    attended_by = models.ManyToManyField(User,related_name='student_attending',through='StudentClassHistory')

    def __unicode__(self):
        return self.class_name
    class Meta:
        db_table = 'classes'

class StudentClassHistory(models.Model):
    student = models.ForeignKey(User)
    year = models.IntegerField(default=datetime.date.today().year)
    semester = models.IntegerField()
    attended_class  = models.ForeignKey(SchoolClass) 

    class Meta:
        db_table = 'student_class_history'

Когда я пытаюсь выполнить следующий запрос

User.objects.filter(student_attending__studentclasshistory__year=2011)

, я получаю ошибку Связанное поле имеет недопустимый поиск: год . Это странно, потому что я пропустил год, а доступные поля: Невозможно разрешить ключевое слово '' в поле. Возможные варианты: посещаемый_класс, идентификатор, семестр, студент, год

Как это так?

Кроме того, с по в атрибуте моей модели, могу ли я просто удалить related_name ?

7
задан goh 19 June 2011 в 05:08
поделиться