我正在django rest framework中开发Hrms应用程序。我已经创建了员工详细信息模块,接下来是休假管理系统。实际上我的公司政策有不同的休假政策,比如cl,sl,ml,compo off,并且不知道在序列化器或视图中的什么地方写逻辑?因为是新手,我觉得有些困难。另外,当员工申请休假时,应该向T.L.申请,然后HR和经理应该可以看到。T.L.会给予许可,这一切都应该在申请和电子邮件流程中进行。如何在rest api中进行申请和批准,以及如何使用django rest api发送邮件?有人能指导我吗?如果员工选择Cl,他得到了总共12个cl,他可以每月一次,cl可以结转到3个假期,之后它将到期,那么sl意味着每季度2个可用假期,然后半天假期,这里的逻辑是什么,我应该如何进行?
类LeaveType(模型.模型):
Leave_type = (
('CL', 'Casual Leave'),
('SL', 'Sick Leave'),
('ML', 'Medical Leave'),
('Comp Off', 'Compensation'),
('L.O.P', 'Loss of Pay')
)
Leave_Choice = (
('Full Day', 'Full Day Leave'),
('Fore Noon', 'Fore Noon Only'),
('After Noon', 'After Noon Only'),
Status_choices = (
('Approved', 'Approved'),
('Rejected', 'Rejected'),
('Pending', 'Pending'),
leave_type = models.CharField(max_length=50, choices=Leave_type)
status = models.CharField(max_length=50, choices=Status_choices, default='Pending')
leave_choice = models.CharField(max_length=50, choices=Leave_Choice, default='Full Day')
if leave_type == 'CL':
total_leave_per_year = 12
monthly_leave_applicable = 1
carry_forawrd_monthly_leave = 3
elif leave_type == 'SL':
Quarterly_days_applicable = 2
annual_leave_applicable = 8
2条答案
按热度按时间t3psigkw1#
所以如果你想要逻辑这是你可以怎么做
使您的第一个API在用户请假时允许在数据库中创建新记录,并且状态必须为待定,您还应该允许分配一些用户类型,如团队负责人或人力资源。
因此,首先我们将代码设置为
您将需要user作为表中的外键。
第二步是我们的情况,只有特定的人可以看到休假.
为此,你需要照顾django权限假设我们有3个用户类型在您的系统中,如人力资源,团队领导和项目经理在您的用户模型。
因此,您需要编写自定义权限类。
您可以通过rest_framework导入权限来完成此操作
现在,我们可以将上述类与权限类列表合并到视图中
在此之后,您只需要用户id,我的意思是,我们将创建逻辑来更新我们的API,因为id将作为URL中的slug,我们可以使用URL中的主键查询
LeaveType
模型,并发送电子邮件和更新状态,还可以分配给下一个人,如果已更新待定休假,则允许某种级别的验证。希望你能理解!
vojdkbi02#
为休假创建一个单独的应用程序,作为外键字段链接到主雇员。然后声明休假模型,并根据序列化程序中的条件,允许或不允许雇员申请休假。通过权限,您可以控制视图的只读或读/写部分。要发送电子邮件,请查看文档:https://docs.djangoproject.com/en/4.1/topics/email/