我创建了自己的登录视图.但是,如果用户直接访问/ admin,则会将其带到管理员登录页面,并且不会使用我的自定义视图.如何将其重定向到用于/ admin的所有内容的登录视图?
是否可以在注释中进行过滤?
在我看来这样的事情(实际上并不起作用)
Student.objects.all().annotate(Count('attendance').filter(type="Excused"))
由此产生的表格将让每个学生都有理由缺席.查看文档过滤器只能在注释之前或之后进行,否则将无法产生所需的结果.
解决方法就是这样
for student in Student.objects.all():
student.num_excused_absence = Attendance.objects.filter(student=student, type="Excused").count()
Run Code Online (Sandbox Code Playgroud)
这可以工作,但在实际应用程序中执行很多查询,这可能会变得不切实际.我认为这种类型的语句在SQL中是可行的,但如果可能的话,我更愿意继续使用ORM.我甚至尝试过两个单独的查询(一个用于所有学生,另一个用于获得总数)并将它们与|组合.组合改变了总数:(
我在这里使用额外的SQL解决了出勤问题.