【问题标题】:adding extra row in django inline template在 django 内联模板中添加额外的行
【发布时间】:2014-12-07 14:02:20
【问题描述】:

我有这些模型和管理模型,如下所示

我希望在交易模型中显示总金额(即金额字段的总和)

Inline 中没有更改列表的方法我该怎么做

class TransactionAdmin(admin.ModelAdmin):
    inlines = [TransactionAmountInline, AmountPaidInline, PhotosInline]
    fields = ('customer', 'title', 'description', 'created_at')
    readonly_fields = ('updated_at',)
    list_display = ('title', 'customer')


class AmountPaidInline(admin.TabularInline):
   model = AmountPaid
   extra = 0


class AmountPaid(models.Model):
     transaction = models.ForeignKey(Transactions)
     description = models.TextField(null=True)
     amount = models.DecimalField(max_digits=19, decimal_places=4)
     created_at = models.DateTimeField(auto_now_add=True)
     updated_at = models.DateTimeField(auto_now=True)

【问题讨论】:

    标签: python django admin inline


    【解决方案1】:

    您必须将此函数添加到您的事务模型中。

    def sum_amount (self):
        return AmountPaid.objects.filter(transaction=self).aggregate(total=Sum('amount'))['total']
    

    并将函数名添加到模型管理员TransactionAdmin的list_display选项中:

    list_display = ('title', 'customer', 'sum_amount')
    

    【讨论】:

    • 感谢您的回答实际上我想要的是在更改表单中显示 sum_amount(当您单击交易链接时)我知道我可以覆盖更改列表视图并添加总数金额为额外的上下文,但我想在要显示的 AmountPaidInline 表单中显示总金额
    • 简单来说,我想在内联中添加另一行以显示 AmountPaind 模型中的总金额
    • 请在这方面给我更多帮助
    猜你喜欢
    • 2015-10-05
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 2016-05-31
    相关资源
    最近更新 更多