django: domaine connexe est non valide de recherche
J'ai les modèles suivants
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'
Lorsque j'essaie d'exécuter la requête suivante
User.objects.filter(student_attending__studentclasshistory__year=2011)
j'ai obtenu l'erreur Related Field has invalid lookup: year
. C'est étrange, parce que j'ai omis de l'année et les champs disponibles sont Cannot resolve keyword '' into field. Choices are: attended_class, id, semester, student, year
Comment est-ce donc?
Aussi, avec through
dans mon modèle d'attribut, puis-je supprimer related_name
?
OriginalL'auteur goh | 2011-06-19
Vous devez vous connecter pour publier un commentaire.
Le problème est que
année
est un champ de recherche, de sorte que Django pense que vous êtes en essayant d'extraire de l'année à partir de quelque chose qui n'est pas une date. Vous devriez écrire:(Aussi, vous devez faire la
default
pouryear
un callable, c'est à dire:)
OriginalL'auteur Ismail Badawi