小明:嘿,小李,最近在开发实训实习管理系统的时候,我们是不是得加个月报功能?
小李:对啊,老师说要让实习生每月提交实习总结,系统需要自动统计和展示。
小明:那怎么实现呢?数据库该怎么设计?
小李:我们可以建一个MonthReport模型,包含学生ID、月份、内容、状态等字段。用Django ORM来操作。
小明:那前端怎么展示呢?有没有现成的组件?
小李:可以使用Django模板,或者结合Vue.js做动态加载。比如根据学生选择的月份,显示对应的报告。
小明:那数据统计部分呢?比如每个月有多少人提交了报告?
小李:可以用Django的聚合函数,比如Count(),按月份分组统计。然后返回JSON格式给前端展示。
小明:那代码部分呢?能给我看看吗?
小李:当然可以。这是模型部分:
from django.db import models class MonthReport(models.Model): student = models.ForeignKey(Student, on_delete=models.CASCADE) month = models.CharField(max_length=10) content = models.TextField() status = models.CharField(max_length=20, default='pending') created_at = models.DateTimeField(auto_now_add=True) def __str__(self): return f"{self.student.name} - {self.month}"
小明:明白了,那视图部分呢?
小李:这里是一个简单的列表视图:
from django.shortcuts import render from .models import MonthReport def report_list(request): reports = MonthReport.objects.all() return render(request, 'report/list.html', {'reports': reports})
小明:太好了,这样就能在西安的学校里部署了。
小李:没错,而且还可以扩展为多语言支持,适应不同地区的实习生。
小明:看来这个系统真的能帮助学校更好地管理实训实习了。
小李:是的,月报功能就是其中很重要的一环。