Tengo dos modelos que se relacionan entre sí usando ForeignKey y related_name se usa. Aquí hay un ejemplo.Usando related_name correctamente en 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
Por ejemplo, me gustaría acceder al nombre de la clase.
Esto es lo que probé.
john = Student.objects.get(username = 'john')
print john.classes.name
nada se imprime.
Pero cuando intento john.classes
me sale objeto django.db.models.fields.related.RelatedManager en 0x109911410. Esto muestra que están relacionados. Pero me gustaría obtener el nombre de clase.
¿Estoy haciendo algo mal? ¿Cómo accedo al nombre de la clase usando related_name? Necesito alguna guía
hay solo una clase para cada niño. entonces ¿por qué no john.classes.name? – lakesh
su solución funciona, pero desea saber por qué john.classes.name no está funcionando? – lakesh
Porque ForeignKey hace varias clases para un niño, no una clase. Si solo quieres una clase, usa el campo onetoone. – sergzach