【问题标题】:How to join table with django?如何用 django 加入表格?
【发布时间】:2017-10-13 03:53:48
【问题描述】:

假设,我在下面有两个表格: enter image description here

我已经制作了models.py:

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 只是作为主键(也不是作为外键),是否可以加入表?我应该如何制作代表学生 ID、学生姓名和年级的 view.py 和模板? 提前谢谢你。

【问题讨论】:

    标签: python django django-models django-templates django-views


    【解决方案1】:

    我对 Django 并没有真正的经验,但就加入这两个表而言,你可以。连接两个具有主键和外键关系的表实际上与对行进行普通 RESTRICT 操作相同,即显式使用。 WHERE Students.students_id = Score.students_id。普通加入会自动为您计算。

    【讨论】:

      【解决方案2】:

      我建议你更新你的 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)
      

      你可以在views.py中访问Score模型

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

      在 HTML 模板中访问分数

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

      【讨论】:

        猜你喜欢
        • 2016-08-04
        • 1970-01-01
        • 1970-01-01
        • 2021-05-25
        • 1970-01-01
        • 1970-01-01
        • 2016-03-12
        • 2018-02-05
        • 2021-06-14
        相关资源
        最近更新 更多