在管理界面中显示总金额

时间:2018-10-29 22:45:27

标签: python django django-admin

我已经搜索过,没有找到任何答案。我想在管理模板中获得内联salesitem的总数。我希望在添加数量时,该项目的quantity * price显示在管理内联表中。 示例:

models.py

class Stock(models.Model):
    price = models.DecimalField()
    quantity = models.PositiveIntegerField()

class Sales(models.Model):
    name = models.CharField()
    #Other fields

class SalesItem(models.Model):
    item = models.ForeignKey(Stock)
    quantity = models.PositiveIntegerField()

admin.py

class SalesItemInline(admin.TabularInline):
    model = SalesItem

class SalesAdmin(admin.ModelAdmin, ExportCsvMixin):
    exclude = ['admin', 'branch']
    inlines = [SalesItemInline]

这是我已经部署的小型库存系统。

1 个答案:

答案 0 :(得分:0)

您可以内联显示模型函数和属性。例如:

class SalesItem(models.Model):
    ...
    @property
    def total(self):
        return self.item.price * self.quantity

,然后将其添加为readonly_fields的一部分(因为它是计算属性):

class SalesItemInline(admin.TabularInline):
    ...
    fields = ('item', 'quantity', 'total')
    readonly_fields = ('total',)