0

내가 아래에 두 개의 테이블이, 가정Django와 테이블을 조인하는 방법? 제가 models.py했습니다 <a href="https://i.stack.imgur.com/LBnOK.png" rel="nofollow noreferrer">enter image description here</a></p> <p>:

class Score(models.Model): 
    Student_Id = models.CharField(max_length=20, primary_key=True) 
    Grade = models.CharField(max_length=30) 
    Status= models.CharField(max_length=3) 

    class Meta: 
     db_table ='T_Score' 


class Student(models.Model): 
    Student_Id = models.CharField(max_length=20, primary_key=True) 
    Student_Name = models.CharField(max_length=30) 
    Student_Class = models.CharField(max_length=3) 

    def __str__(self): 
     return { 
      "id" : self.Student_Id, 
      "name" : self.Student_Name, 
     } 

    class Meta: 
     db_table ='T_Student' 

이 테이블에 가입 가능을 Student.Student_Id 단지 기본 키 (하지 경우 외국도)? 그리고 Student ID, Student Name, Grade를 나타내는 view.py와 템플릿을 어떻게 만들어야합니까? 미리 감사드립니다.

답변

0

저는 장고를 실제로 경험하지는 않지만, 두 테이블에 합류하는 한, 당신은 할 수 있습니다. 기본 키와 외래 키 관계가있는 두 테이블을 조인하는 것은 실제로 행에 일반 RESTRICT 연산을 넣는 것과 동일합니다. 즉 명시 적으로 사용하는 것입니다. WHERE Students.students_id = Score.students_id. 일반 가입은 자동으로 귀하를 위해 그것을 나타냅니다.

0

models.py를 업데이트하는 것이 좋습니다.

class Student(models.Model): 
    name = models.CharField(max_length=30) 
    s_class = models.CharField(max_length=3) 

class Score(models.Model): 
    student = models.ForeignKey(Student) 
    grade = models.CharField(max_length=30) 
    status= models.CharField(max_length=3) 

당신은 HTML 템플릿에 점수를 접속하기 views.py

scores = Score.objects.all() 
context = { 
    'scores': scores 
} 

의 점수 모델에 액세스 할 수 있습니다

{% for score in scores %} 
    ID - {{ score.student.id }} 
    NAME - {{ score.student.name }} 
    GRADE - {{ score.grade }} 
{% endfor %}