带列表视图的Django模型related_list



首先,我有一个学生模型和一个咨询模型。

一个学生模型中有上百个咨询模型。

我想把每个科目(分类)的最后一次咨询日期做成每个学生的listview。

如果做了,老师可以一目了然地看到谁咨询时间最长,谁咨询时间最近。

有办法吗?

咨询model.py

class Consultation(models.Model):
classification = models.CharField(
max_length=10,
choices=CLASSIFICATION,  # there are 'korean', 'english', 'math', 'etc ... '
default='etc',
)
content = models.TextField(max_length=1000, blank=False, verbose_name='contentt')
created_to = models.ForeignKey(
Student,
related_name='consultations',
verbose_name='student',
on_delete=models.CASCADE
)
created_at = models.DateTimeField(default=datetime.now, verbose_name='time')

学生mnodel.py

class Student(models.Model):
name = models.CharField(max_length=255, verbose_name='이름')

如果可以,我想使用ListView

class StudentList(ListView):
model = Student
template_name = 'student/list.html'
context_object_name = 'students'
paginate_by = 10
blah blah blah 

我想做的是这样的

学生姓名韩国科目最后一次会诊日期英语科目最后一次会诊日期数学科目最后一次会诊日期
学生姓名韩国科目最后一次咨询日期英语科目最后一次咨询日期数学科目最后一次咨询日期
学生姓名韩国科目最后一次咨询日期英语科目最后一次咨询日期数学科目最后一次咨询日期
学生姓名韩国科目最后一次咨询日期英语科目最后一次咨询日期数学科目最后一次咨询日期
学生姓名韩国科目最后一次咨询日期英语科目最后一次咨询日期数学科目最后一次咨询日期
class Student(models.Model):
name = models.CharField(max_length=255, verbose_name='이름')

def last_consult_korean(self):
last_date=self.consultations.filter(classification='korean').order_by('-created_at').first()
return last_date.created_at if last_date else ''

在你的模型中写一个这样的函数,在你的模板中调用{{ student.last_consult_korean }}

相关内容

  • 没有找到相关文章

最新更新