如何解决带有列表视图的 Django 模型 related_list
首先,我有一个学生模型和一个咨询模型。
一个学生模型有数百个咨询模型。
我想将每个科目(分类)的最后咨询日期制作成每个学生的列表视图。
如果做到了,老师一看就知道谁咨询的时间最长,谁的咨询时间最近。
有什么办法吗?
咨询模型.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 }}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。