如何在django管理模型中计算字段

时间:2017-10-17 15:05:19

标签: python django django-models django-admin

我有一个模型,我已添加到我的django管理面板

from django.db import models
from django.contrib import admin

class Employee(models.Model):
   fee = models.IntegerField(null=False)
   vat = models.IntegerField(null=False)

并添加了我的管理面板

admin.site.register(Employee, EmployeeAdmin)
 readonly_fields('vat',)

因此,在添加新员工时,管理员输入费用金额,id就像要计算的大桶一样,并显示为进入大桶的直接结果。如何在管理员输入费用时动态创建此计算

2 个答案:

答案 0 :(得分:0)

我在这里可能完全错了,但是你不能只使用一个属性而不是在数据库中存储vat吗?

在您的模型上,声明:

@property
def vat(self):
    return calculation_of_vat(self.fee)

答案 1 :(得分:0)

你可以覆盖保存方法:

def save(self, *args, **kwargs):
    self.vat=self.calculate_vat(self.fee)
    super(ClassModel, self).save(*args, **kwargs)