ForeignKey를 사용하여 관련이있는 두 개의 모델이 있고 related_name이 사용됩니다. 다음은 그 예입니다.Django에서 related_name을 올바르게 사용하기
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
예를 들어, 클래스 이름에 액세스하고 싶습니다.
이것은 내가 시도한 것입니다.
john = Student.objects.get(username = 'john')
print john.classes.name
아무 것도 출력되지 않습니다. 내가 john.classes
을하려고 할 때
는하지만 난 0x109911410에서 django.db.models.fields.related.RelatedManager 객체를 얻는다. 이것은 그들이 관련되어 있다는 것을 보여줍니다. 하지만 클래스 이름을 얻고 싶습니다.
내가 잘못 했나요? 어떻게 related_name을 사용하여 클래스의 이름에 액세스합니까? 지침이 필요합니다.
각 자식에 대해 하나의 클래스 만 있습니다. 그러면 john.classes.name은 왜 안되나요? – lakesh
솔루션은 작동하지만 john.classes.name이 작동하지 않는 이유를 알고 싶습니까? – lakesh
ForeignKey는 하나의 자식이 아닌 하나의 클래스에 대해 여러 클래스를 만들기 때문입니다. 한 클래스 만 원한다면 onetoone 필드를 사용하십시오. – sergzach