在Django管理屏幕中总和2个字段?

时间:2015-12-11 13:06:00

标签: javascript django django-admin

我的model.py:

class MyClass(models.Model):
    id = models.AutoField(primary_key=True)
    price = models.FloatField(blank=True, null=True)
    fee = models.FloatField(blank=True, null=True)
    # total is price + fee
    total = models.FloatField(blank=True, null=True)

我的admin.py

class MyClassAdmin(admin.ModelAdmin):
    search_fields=[]
    list_filter=[]
admin.site.register(MyClass,MyClassAdmin)

在Myclass Admin屏幕中,当用户键入price字段和费用字段时,将更新总字段。

这样做的最佳做法是什么?使用javascript?

1 个答案:

答案 0 :(得分:0)

如果您需要在界面中进行实时显示,则必须使用javascript(jquery)并在更新时更新总数。但是为了将其保存在数据库中,请使用django模型的save方法,如下所示:

class MyClass(models.Model):
    # attribute here ...

    def save(self, *args, **kwargs):
       self.total = self.price + self.fee
       super(MyClass, self).save(*args, **kwargs)