그래서 장고를 배우고 장고 ORM 함수를 사용하여 외래 키로 값을 가져 오려고합니다. User table (기본 Django auth_user 시스템 테이블)과 student_id, user_id (FK) 및 nr_indeksu (학생 고유 정보에 대한 추가 정보가 들어있는 번호)가 포함 된 Student Table의 두 가지 테이블이 있습니다.Django 외래 키 QuerySet (join)
class Student(models.Model):
user = models.ForeignKey(User)
nr_indeksu = models.BigIntegerField()
def __unicode__(self):
return unicode(self.user
사용자 모델을 통해 nr_indeksu를 가져 오려고합니다. 내가 select_related() 함수를 사용하여 시도했다
SELECT nr_indeksu FROM auth_user
INNER JOIN courses_student on auth_user.id = courses_student.user_id;
: 즉 (검색어 세트 사용)이 쿼리 실행
u = User.objects.select_related().get(pk=2)
하지만을 나는 nr_indeksu에 액세스하려고하면
u.nr_indeksu
를 내가 User 객체에 아무런 속성이 없다는 오류가 발생했습니다. nr_indeksu가 Student 모델이지만 사용자가 가져올 수 없으므로 의미가 있습니다.
JOIN 및 FK 관계를 사용하여 사용자 모델에서 nr_indeksu를 가져오고 싶습니다. 대답은 간단합니다. 학생 모델 – Malyo
에서 선택 하시겠습니까? 아니요. 'user__id = 2'는'Select * from USER where user_id = 2;'를 의미합니다. 하위 쿼리와 같습니다. – sachitad
알겠습니다, 고마워요.하지만 여전히 사용자 객체의 학생 속성에 액세스하고 싶습니다. – Malyo