# -*- coding: utf-8 -*- from django.db import models class Subjects(models.Model): name_teacher=models.CharField(max_length=50, verbose_name=u'Полное имя преподавателя') subject=models.CharField(max_length=50, verbose_name=u'Предмет') def __unicode__(self): return u'%s'%(self.subject) class Students(models.Model): name = models.CharField(max_length=50, verbose_name=u'Полное имя') date_of_birth = models.DateField(verbose_name=u'Дата рождения') num_stud=models.CharField(max_length=50,verbose_name=u'Номер студ. билета ') group=models.ForeignKey('Groups',verbose_name=u'Группа, к которой прикреплен студент') subject_stud=models.ManyToManyField('Subjects',blank=True, null=True, verbose_name='Предмет, который изучает студент') def __unicode__(self): return u'%s'%(self.name) class Groups(models.Model): name_group = models.CharField(max_length=100, verbose_name=u'Название группы') headman = models.ForeignKey('Students', blank=True, null=True, verbose_name=(u'Староста'), related_name='students') subject_group=models.ManyToManyField('Subjects',blank=True, null=True, verbose_name='Изучаемые предметы') def __unicode__(self): return u'%s'%(self.name_group) class Marks(models.Model): mark=models.IntegerField( verbose_name=u'Оценка') stud_mark=models.ManyToManyField('Students',blank=True, null=True, verbose_name='Оценки студента') subject_mark=models.ManyToManyField('Subjects',blank=True, null=True, verbose_name='Оценки по предмету') data_mark=models.DateField(verbose_name=u'Дата оценки') def __unicode__(self): return u'%s'%(self.mark)
У меня например (правельно ли это)
s=Subjects.objects.get(pk=sub_id)——–предмет
stud=s.students_set.all()——————–Все студенты
o=stud(2).marks_set.filter(subject_mark=s)–оценки 3-го по счету студента этого предмета
И как мне записать в шаблоне все это? Если у меня есть страница из таблицей (название Предмет) потом идут строки с именем студента и его оценками по этому предмету.
(sub':s,'stud':stud)
<table border="2" align="center" > <caption><h1> Оценки по предмету {{sub.subject}} </h1></caption> <tr style="background-color:gray"> <th>№</th> <th>Имя, фамилия студента</th> <th >Оценка</th></tr> {%for i in stud%} <tr style="background-color:silver"> <td scope="row">{{forloop.counter}}.</td> <td scope="row"><a href="/grou/{{ i.id }}/">{{ i.name }}</a></td> {%for j in i.marks_set.all%} -------------вот сдесь как записать что бы не все оценки были а только те которые имеет студент по определенному предмету stud(2).marks_set.filter(subject_mark=s) <td style="background-color:white">{{j}} </td>{%endfor%} </tr>{%endfor%} </table>