从另一个模型的方法为模型创建值

2024-05-29 04:54:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个新表(Payslip model),该表将包含截止日期中员工的计算工资

我希望Payslip.salaryEmployee.compute_pay()获取值 给出上面url链接中的示例,我的views.py应该是什么样子

这是实现这种过程的最佳方法吗?或者是否有任何图书馆可以帮助我在这里做什么

https://imgur.com/a/wVG5qrd

model.py

class Employee(models.Model):
    name = models.CharField(max_length=20)
    rate = models.IntegerField()
    absent = models.IntegerField()
    def __str__(self):    
        return self.name    
    def compute_pay(self):    
        daily = rate / 20    
        return rate - (daily*absent)  

class Payslip(models.Model):    
    name = models.CharField(max_length=20)  
    salary = models.IntegerField()    
    def __str__(self):
        return self.name

views.py

def compute(request):
    if request.method == "POST":  
        return render(request,'payroll/compute/compute.html')

Tags: namepyselfmodelreturnratemodelsrequest
1条回答
网友
1楼 · 发布于 2024-05-29 04:54:29

我认为不需要另一种型号的工资单,而且这两种型号之间没有国外的关键联系,所以它可以正常工作

考虑到您的要求,物业装饰师应该会工作。阅读@property的工作原理。基本上,它充当一个伪模型字段,请记住此字段的值不会存储在数据库中的任何位置,但它是为这样的情况量身定制的,即字段根据其他字段更改,并且只读时需要

试试这个

class Employee(models.Model):
    name = models.CharField(max_length=20)
    rate = models.IntegerField()
    absent = models.IntegerField()

    def __str__(self):    
        return self.name    

    @property
    def compute_pay(self):    
        daily = self.rate / 20    
        return (self.rate - (daily*self.absent))

您可以通过employee.compute\u pay获得员工的工资,就像任何其他模型字段一样

相关问题 更多 >

    热门问题