【发布时间】:2022-11-30 19:25:22
【问题描述】:
我只需要做天长和人力资源部批准休假权限。如何在 Django Rest 框架中实现它?因为我是新手,所以我发现这种情况具有挑战性。帮我解决技术问题
这是我的用户模型
class User(AbstractBaseUser):
email = models.EmailField(max_length=255, unique=True)
username = models.CharField(max_length=150, unique=True)
name = models.CharField(max_length=150, blank=True)
is_admin = models.BooleanField(default=False)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
is_HR = models.BooleanField(default=False)
is_TL = models.BooleanField(default=False)
updated_at = models.DateTimeField(auto_now=True)
created_at = models.DateTimeField(auto_now_add=True)
这是我的请假申请模型。
class Leave(models.Model):
leave_type = models.CharField(max_length=50)
employee = models.ForeignKey(UserDetails, on_delete=models.CASCADE)
manager = models.CharField(max_length=50)
applied_on = DateTimeField(auto_now_add=True)
from_date = DateField()
to_date = DateField()
number_of_days = IntegerField()
purpose = models.CharField(max_length=100)
status = models.CharField(max_length=50, choices=( ('Pending', 'Pending'),
('Approved', 'Approved'),
('Rejected', 'Rejected')
),default='Pending')
waiting_approval = models.BooleanField(default=True)
TL_approved = models.BooleanField(default=False)
TL_rejected = models.BooleanField(default=False)
def approve(self):
self.manager_approved = not self.manager_approved
self.manager_rejected = not self.manager_rejected
这是我的看法
class LeaveManagerApproveView(APIView):
def post(self, request):
leave_id = request.data.get('leave_id')
leave = Leave.objects.get(id=leave_id)
leave.waiting_approval = False
leave.manager_approved = True
leave.status = 'Approved'
leave.save()
return Response({'successMessage': 'Leave Approved Successfully'})
在我看来,我只需要Hr或TL应该批准还是拒绝?如何摇滚?
【问题讨论】:
-
我尝试了不同的权限但都失败了,无法帮助自己了解如何专门创建 hr 和 tl 权限?
标签: django django-models django-rest-framework django-views django-forms