tengo los siguientes modelosDjango: relacionadas con el campo de búsqueda no válido tiene
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'
Cuando trato de ejecutar la siguiente consulta
User.objects.filter(student_attending__studentclasshistory__year=2011)
tengo el error Related Field has invalid lookup: year
. Eso es extraño, porque omití el año y los campos disponibles son Cannot resolve keyword '' into field. Choices are: attended_class, id, semester, student, year
¿Cómo es esto?
Además, con through
en mi atributo de modelo, ¿puedo simplemente eliminar related_name
?
bahh, que lo explica. Gracias. otro qns: si escribo filter (student_attending__schoolclasshistory = ...) obtengo un término repetido en mi consulta, es decir, proporcional al número de entradas en schoolclasshistory. sin embargo, el filtro (schoolclasshistory = ..) es bueno. ¿por qué esto es tan? – goh