Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 同时对django中的两个字段进行计算,但一次只执行一个字段_Python_Django - Fatal编程技术网

Python 同时对django中的两个字段进行计算,但一次只执行一个字段

Python 同时对django中的两个字段进行计算,但一次只执行一个字段,python,django,Python,Django,我试图同时执行这两个操作,但一次只返回一个。如果我移除其中一个,另一个就会被执行。有没有办法让他们两个同时工作?我说的是grossannualsalary和TextDecreate class Salarie(models.Model): grossmonthlysalary = models.FloatField( _('Monthly Salary'), null=False, blank=False, default

我试图同时执行这两个操作,但一次只返回一个。如果我移除其中一个,另一个就会被执行。有没有办法让他们两个同时工作?我说的是grossannualsalary和TextDecreate

class Salarie(models.Model):

    grossmonthlysalary = models.FloatField(
        _('Monthly Salary'),
        null=False,
        blank=False,
        default=0.00
    )

    monthlyincometax = models.FloatField(
        _('Monthly Income Tax'),
        null=False,
        blank=False
    )

    contractperiod = models.IntegerField(
        _('Contract Period'),
        null=False,
        blank=False
    )

    grossannualsalary = models.FloatField(
        _('Gross Annual Salary'),
        null=True,
        blank=True
    )

    taxDeduct = models.FloatField(
        _('Tax Deduction'),
        null=False,
        blank=False,
        default=0.00
    )

    def save(self, *args, **kwargs):
        self.grossannualsalary = self.grossmonthlysalary * self.contractperiod
        super(Salarie, self).save(*args, **kwargs)

    def save(self, *args, **kwargs):
        self.taxDeduct = self.grossmonthlysalary * self.monthlyincometax / 100
        super(Salarie, self).save(*args, **kwargs)

我不明白你为什么在一个模型中编写两个save方法。请试试这个

def save(self, *args, **kwargs):
    self.grossannualsalary = self.grossmonthlysalary * self.contractperiod
    self.taxDeduct = self.grossmonthlysalary * self.monthlyincometax / 100
    super(Salarie, self).save(*args, **kwargs)

我不明白你为什么在一个模型中编写两个save方法。请试试这个

def save(self, *args, **kwargs):
    self.grossannualsalary = self.grossmonthlysalary * self.contractperiod
    self.taxDeduct = self.grossmonthlysalary * self.monthlyincometax / 100
    super(Salarie, self).save(*args, **kwargs)

为什么
grossannualsalary
始终是计算结果的字段?为什么不把它变成一个财产呢?这同样适用于
taxdeletry
,为什么您定义了两次save方法?一个名称只能有一个方法。为什么不把它们都放在同一个函数中?如果总是计算的结果,为什么
grossannualsalary
是一个字段?为什么不把它变成一个财产呢?这同样适用于
taxdeletry
,为什么您定义了两次save方法?一个名称只能有一个方法。为什么不把它们放在同一个函数中呢?这仍然只是“一次一个”的计算,它(对我来说)并不完全清楚op到底想做什么。我同意,如果grossannualsalary和TaxDecrete是从其他模型字段的计算中派生出来的,那么最好写属性。@Darshit会喜欢在这种情况下使用属性,你能帮我把这段代码转换成财产计算吗。@IsraelZ.Kollie请看一下教程,这段代码仍然只进行“一次一个”的计算,它(对我来说)不太清楚op实际想做的是,我同意,如果grossannualsalary和TaxDecrete是从其他模型字段的计算中派生出来的,那么最好编写属性。@Darshit希望在这种情况下使用属性,您能帮助我将此代码转换为属性计算。@IsraelZ.Kollie请完成教程并