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