У меня есть следующие модели
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
?