我需要在Django-admin模型中用同一类中的固定值(系数)划分类字段(值)。 此操作的结果应填充相同类的另一个字段(点)。这两个值的类型相同(整数)。
例如,用户输入值“ 180”,然后他将系数保留为其默认值“ 10”。保存新条目时,它将显示update.packages()
因此,目前我在Django Points = 18
中定义了'coefficient'
字段,默认为10。
如上所述,“值”字段是可编辑的。
我以为可以使用models.py
在字段之间执行数学运算,但是我不确定这是正确的工具还是更简单的工具。
当我在模型上设置以下表达式时,在进行数据库迁移时会看到很多抱怨。
F()
由于我是Django的新手,因此感谢您的帮助,也许我误会了一些明显的东西。
答案 0 :(得分:1)
覆盖 save()
模型的 Value
方法,如
class Visits(models.Model):
value = models.IntegerField()
coefficient = models.IntegerField()
points = models.IntegerField(blank=True, null=True, editable=False)
def save(self, *args, **kwargs):
self.points = int(self.value / self.coefficient)
super().save(*args, **kwargs)
使用@property
装饰器
class Visits(models.Model):
value = models.IntegerField()
coefficient = models.IntegerField()
@property
def points(self):
return int(self.value / self.coefficient)
答案 1 :(得分:0)
您可以简单地覆盖模型的save()
方法来计算Points
字段:
def save(self, *args, **kwargs):
self.Points = self.Value / self.Coefficient
super().save(*args, **kwargs)
您可能还希望在此处检查并处理零除。