Ho due modelli correlati tra loro utilizzando ForeignKey e related_name è usato. Ecco un esempio.Uso related_name correttamente in Django
class Student(models.Model):
name = models.CharField(max_length=255)
birthday = models.DateField(blank=True)
class Class(models.Model):
name = models.CharField(max_length=255)
student = models.ForeignKey(Student,
related_name='classes',
null=True)
def __unicode__(self):
return self.name
Ad esempio, vorrei accedere al nome della classe.
Questo è quello che ho provato.
john = Student.objects.get(username = 'john')
print john.classes.name
non viene stampato nulla.
Ma quando provo john.classes
ottengo oggetto django.db.models.fields.related.RelatedManager a 0x109911410. Questo dimostra che sono imparentati. Ma mi piacerebbe avere il nome della classe.
Sto facendo qualcosa di sbagliato? Come posso accedere al nome della classe usando related_name? Hai bisogno di una guida.
c'è una sola classe per ogni bambino. allora perché non john.classes.name? – lakesh
la tua soluzione funziona ma ti piacerebbe sapere perché john.classes.name non funziona? – lakesh
Perché ForeignKey rende diverse classi per un figlio, non una classe. Se vuoi solo una classe usa il campo onetoone. – sergzach