小编fBS*_*mon的帖子

如何从django modelAdmin中的save_related表单集访问所有表单

当调用save_related时,我需要从内联表单集中的所有表单访问两个字段,而save_related只允许我访问已更改的表单/数据.

我的问题的任何其他解决方案,所以这里是:

class Invoice(models.Model):
    invoice = models.CharField(max_length=10, blank=True, null=True, unique=True)
    total = models.PositiveIntegerField(blank=True, null=True)


class InvoiceItem(models.Model):
    invoice = models.ForeignKey(Invoice, related_name='items')
    service = models.ForeignKey(Service)
    quantity = models.PositiveIntegerField(blank=False, default=1)
    price = models.PositiveIntegerField(blank=False, default=0)


class InvoiceItemInline(admin.TabularInline):
    model = InvoiceItem


class InvoiceAdmin(admin.ModelAdmin):
    inlines = [InvoiceItemInline]

    def save_related(self, request, form, formsets, change):
        invoice = form.instance
        invoice.total = 0
        for inlines in formsets:
            for inline_form in inlines:
                invoice.total = invoice.total + inline_form.cleaned_data['price'] * inline_form.cleaned_data['quantity']
        invoice.save()
        super(InvoiceAdmin, self).save_related(request, form, formsets, change)
Run Code Online (Sandbox Code Playgroud)

我需要计算每个发票项目的发票总额,其中每个项目都有数量*价格.

modeladmin django-admin

2
推荐指数
1
解决办法
2783
查看次数

标签 统计

django-admin ×1

modeladmin ×1