1
- from django .shortcuts import render
1
+ from django .shortcuts import render , redirect
2
+ from django .urls import reverse
2
3
3
4
from hrs .models import Dept , Emp
4
5
@@ -10,12 +11,26 @@ def index(request):
10
11
return render (request , 'index.html' , context = ctx )
11
12
12
13
14
+ def del_dept (request ):
15
+ # 重定向 - 重新请求一个指定的页面
16
+ return redirect (reverse ('depts' ))
17
+
18
+
13
19
def 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 )
15
32
16
33
17
34
def depts (request ):
18
- # DRY - Don't Repeat Yourself
19
- # ORM - Object Relation Mapping
20
35
ctx = {'dept_list' : Dept .objects .all ()}
21
36
return render (request , 'dept.html' , context = ctx )
0 commit comments