1- from django .shortcuts import render
1+ from django .shortcuts import render , redirect
2+ from django .urls import reverse
23
34from hrs .models import Dept , Emp
45
@@ -10,12 +11,26 @@ def index(request):
1011 return render (request , 'index.html' , context = ctx )
1112
1213
14+ def del_dept (request ):
15+ # 重定向 - 重新请求一个指定的页面
16+ return redirect (reverse ('depts' ))
17+
18+
1319def emps (request ):
14- dno = int (request .GET ['dno' ])
20+ no = request .GET ['no' ]
21+ # dept = Dept.objects.get(no=no)
22+ # ForeignKey(Dept, on_delete=models.PROTECT, related_name='emps')
23+ # dept.emps.all()
24+ # emps_list = dept.emp_set.all()
25+ # all() / filter() ==> QuerySet
26+ # QuerySet使用了惰性查询 - 如果不是非得取到数据那么不会发出SQL语句
27+ # 这样做是为了节省服务器内存的开销 - 延迟加载 - 节省空间势必浪费时间
28+ emps_list = list (Emp .objects .filter (dept__no = no ).select_related ('dept' ))
29+ ctx = {'emp_list' : emps_list , 'dept_name' : emps_list [0 ].dept .name } \
30+ if len (emps_list ) > 0 else {}
31+ return render (request , 'emp.html' , context = ctx )
1532
1633
1734def depts (request ):
18- # DRY - Don't Repeat Yourself
19- # ORM - Object Relation Mapping
2035 ctx = {'dept_list' : Dept .objects .all ()}
2136 return render (request , 'dept.html' , context = ctx )
0 commit comments