【问题标题】:Trying to do a calculation on django models试图对 django 模型进行计算
【发布时间】:2025-12-08 16:05:01
【问题描述】:

我有两个整数字段,我想将它们分开以获得第三个字段的值。 @财产 def Pallets_Count(self): 返回 self.CASES/self.CasesPerPallet

但数据库中的结果总是显示为空。

【问题讨论】:

    标签: django model integer-division


    【解决方案1】:
    @property 
    def Pallets_Count(self): 
        return self.CASES/self.CasesPerPallet
    

    @property 不会将任何内容保存到您的模型字段中。它就像一种方法。您可以像模型字段mypost.Pallets_Count 一样在模板中调用。

    如果要将结果放入数据库字段,则需要重写save 方法。但这可能不是必需的。财产很可能就足够了。

    class MyModel(models.Model):
         # your other fields
         fieldname = models.FloatField()
    
         def save(self, *args, **kwargs):
             self.fieldname = self.CASES/self.CasesPerPallet
             super(MyModel, self).save(*args, **kwargs)
    

    【讨论】:

    • 如果同一模型需要多个方程怎么办?在这种情况下保存将如何工作?
    • 只需添加另一个字段并在保存方法中添加另一个Lin。
    • 非常感谢还有一个问题,我必须使用 Float 吗?如果我需要小数怎么办?
    • 您觉得应该使用什么。 Numberfield 只是一个例子。