|
@@ -1,10 +1,12 @@
|
|
|
+from django.db import IntegrityError
|
|
|
from django.db.models import F
|
|
|
from django.forms import model_to_dict
|
|
|
+from django.contrib.auth.models import User
|
|
|
from rest_framework import status
|
|
|
from rest_framework.response import Response
|
|
|
from rest_framework.views import APIView
|
|
|
from rest_framework.viewsets import ModelViewSet
|
|
|
-from treeAndTable.models import Department, Dept_job, Job
|
|
|
+from treeAndTable.models import Department, Dept_job, Job, Dept_job_user
|
|
|
from treeAndTable.serializer import Dept_Job_Serializer
|
|
|
|
|
|
|
|
@@ -119,6 +121,40 @@ class DeptAndJobView(ModelViewSet):
|
|
|
return Response(data=data, status=status.HTTP_200_OK)
|
|
|
|
|
|
|
|
|
+'''
|
|
|
+部门岗位中间表与user建立的中间表
|
|
|
+'''
|
|
|
+
|
|
|
+
|
|
|
class DeptJobUserView(ModelViewSet):
|
|
|
queryset = Dept_job.objects.all()
|
|
|
serializer_class = Dept_Job_Serializer
|
|
|
+
|
|
|
+ '''
|
|
|
+ 仅支持list类型的部门岗位id集
|
|
|
+ 批量创建部门岗位的人员
|
|
|
+ '''
|
|
|
+
|
|
|
+ def create(self, request, *args, **kwargs):
|
|
|
+ try:
|
|
|
+ # 如果传入的部门必须包装成list
|
|
|
+ deptJobId = request.data['dept_job_id']
|
|
|
+ if not isinstance(deptJobId, list):
|
|
|
+ raise Exception
|
|
|
+ name = request.data['name']
|
|
|
+ except Exception:
|
|
|
+ return Response(data={'msg': '请求参数错误'}, status=status.HTTP_400_BAD_REQUEST)
|
|
|
+ try:
|
|
|
+ # 传入的用户名不能重复,如果没有当前用户就新建一个
|
|
|
+ user = User.objects.get(username=name)
|
|
|
+ except Exception:
|
|
|
+ user = User.objects.create_user(username=name, password='2020txts')
|
|
|
+ # 批量创建
|
|
|
+ listinsert = list()
|
|
|
+ for id in deptJobId:
|
|
|
+ listinsert.append(Dept_job_user(dept_job_id=id, user_id=user.id))
|
|
|
+ try:
|
|
|
+ Dept_job_user.objects.bulk_create(listinsert)
|
|
|
+ except IntegrityError:
|
|
|
+ return Response(data={'msg': '数据已经存在,不要添加重复数据'}, status=status.HTTP_400_BAD_REQUEST)
|
|
|
+ return Response(data={'msg': 'success'}, status=status.HTTP_200_OK)
|