0

次の Django モデルを参照してください: -

class Student(models.Model):
    reference_num = models.CharField(max_length=50, unique=True)
    name = models.CharField(max_length=50)
    birthdate = models.DateField(null=True, blank=True)
    is_active = models.BooleanField(db_index=True)

class Examination(models.Model):
    short_name = models.CharField(max_length=20, unique=True)
    name = models.CharField(max_length=50, unique=True)
    is_active = models.BooleanField(db_index=True)

class Subject(models.Model):
    short_name = models.CharField(max_length=20, unique=True)
    name = models.CharField(max_length=50, unique=True)
    is_active = models.BooleanField(db_index=True)

class EducationalQualification(models.Model):
    student = models.ForeignKey(Student)
    examination = models.ForeignKey(Examination)
    subject = models.ForeignKey(Subject, null=True, blank=True)
    institution = models.CharField(max_length=50)
    from_date = models.DateField(null=True, blank=True)
    to_date = models.DateField()
    marks = models.DecimalField(max_digits=5, decimal_places=2)

特定の生徒の最後のモデル「教育資格」をグリッドに表示する必要があります (生徒は複数の教育資格を持つことができます)。

グリッドには、「学生の名前」、「試験の略称」、「科目の略称」、「EducationalQualification.institution」、「EducationalQualification.from_date」、「EducationalQualification.to_date」、および「EducationalQualification.marks」の列があります。

このデータを取得するための Django ビューを思いつくことができませんでした (Student.pk を指定)

誰かが私にいくつかのアイデアを手伝ってくれませんか?

よろしく。

4

2 に答える 2

3

EducationalQualification特定の学生のすべてのオブジェクトとそのすべての関係オブジェクトを取得する必要があります。

def view_qualifications(request, student_id):
    qs = EducationalQualification.objects.filter(student__pk=student_id).\
                           select_related("student", "examination", "subject")
    # ...

そして、テンプレートでそれを繰り返すだけです:

{% for q in qs %}
<tr>
   <td>{{q.student.name}}</td>
   <td>{{q.examination.short_name}}</td>
   <td>{{q.subject.short_name}}</td>
   <td>{{q.institution}}</td>
   <td>{{q.from_date}}</td>
   <td>{{q.to_date}}</td>
   <td>{{q.marks}}</td>
</tr>
{% endfor %}
于 2009-03-24T07:58:23.397 に答える
0

managed = Falseデータベース ビューと、そのMeta クラスで指定するモデルを作成します。

于 2012-07-20T16:16:09.617 に答える