我是Django的新手,我正在尝试从模型中检索数据到html表中。本质上,我想检索用户选择的特定月份的所有教师和他们的出勤状态(出席,缺席和迟到)。我能够从视图中传递上下文到模板,这是我的代码
型号.py
class TeacherAttendance(models.Model):
teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE, blank=False, null=True)
date = models.DateField()
status = models.CharField(max_length=50, choices=ATTENDANCE)
objects = models.Manager()
class Meta:
default_permissions = ('view', 'add', 'change', 'delete')
ordering = ["date", ]
get_latest_by = "date"
查看次数.py
def teacher_attendance_report(request):
context = {}
form = TeacherAttendanceForm(request.POST)
if request.method == 'POST':
if request.POST.get('group_by'):
grab_data_passed = request.POST.get('group_by')
get_details = TeacherAttendance.objects.filter(date__month=grab_data_passed)
z=0
range=9
days=[]
if z< range:
dats = TeacherAttendance.objects.filter(date__month=grab_data_passed)[z].date
z+=1
y=dats.month
x=dats.year
cal = calendar.TextCalendar(calendar.WEDNESDAY)
for day in cal.itermonthdays(x, y):
days.append(day)
context['days']=days
teacher = User.objects.filter(is_teacher=True)
for i in teacher:
x=i.id
get_details = TeacherAttendance.objects.filter(teacher__user=x, date__month=grab_data_passed)
context['get_details']=get_details
return render(request, 'Reports/teacher_attendance_report_details.html', context)
context={'form':form}
return render(request, 'Reports/teacher_attendance_report_index.html', context)
我不知道这是否是在视图函数中检索数据的最佳Python方法。
这是我
模板
<table id="datatable-responsive"
class="datatable-responsive table table-striped table-bordered dt-responsive nowrap" cellspacing="0" width="100%">
<thead>
<tr>
<th>Teacher <i class="fa fa-long-arrow-down" z></i> - Date <i class="fa fa-long-arrow-right"></i></th>
<th>{{days}}</th>
</tr>
</thead>
<tbody>
{% for details in get_details %}
<tr>
<td>{{ details.teacher }}</td>
<td>{{ details.status }}</td>
</tr>
{% if empty %}
<tr>
<td colspan="9" class="text-center bg-warning">No Data</td>
</tr>
{% endif %}
{% endfor %}
</tbody>
</table>
目前这是我在浏览器
中得到的
我想实现类似于
的内容
任何建议或代码重组,以实现预期的目标是很好的来,谢谢.
3条答案
按热度按时间oiopk7p51#
我知道现在回答这个问题已经太晚了,但是我最近正在为员工创建一个考勤系统。我需要的正是这个东西。在互联网上搜索后,我没有找到任何合适的东西。所以我创建了一个自定义模板过滤器,它以用户和日期为参数,并返回该日期的考勤
下面是代码:
blmhpbnm2#
你需要把所有的信息存储在一个列表中。例如:
并在模板中呈现:
并更新模板:
ipakzgxi3#
尝试
代替
之后,您需要将教师列表发送到视图中的上下文,类似于
然后在你的html中尝试
有一件事你必须改变是你需要另一种格式的日期列表它必须是[01,02,03,04,.. 10,.. 20,.. 30]