求和Django管理屏幕中的2个字段

Sum 2 fields in Django admin screen?

本文关键字:2个 字段 屏幕 Django 管理 求和      更新时间:2023-09-26

我的模型.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)

我的管理员.py

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

在Myclass Admin屏幕中,当用户键入价格字段和费用字段时,合计字段将更新。

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

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

class MyClass(models.Model):
    # attribute here ...
    def save(self, *args, **kwargs):
       self.total = self.price + self.fee
       super(MyClass, self).save(*args, **kwargs)