Администратор Django: как суммировать суммы товаров и размещать их на вершине модели в total_amount после сохранения? - PullRequest
1 голос
/ 16 июня 2010

models.py

class Head(models.Model):
    total_amount=models.DecimalField(max_digits=9,decimal_places=2)

class Items(models.Model):
    head = models.ForeignKey(Head)
    item_amount=models.DecimalField(max_digits=9,decimal_places=2)

admin.py

class ItemsInline(admin.TabularInline):
    model = Items

class HeadAdmin(admin.ModelAdmin:
    inlines = [ItemsInline]

admin.site.register(Head,HeadAdmin)

Вопрос

После заполнения 3 элементов, встроенных в HeadAdmin, как суммировать все суммы элементов и поместить их в total_amount в Head после нажатия кнопки Сохранить?

1 Ответ

1 голос
/ 16 июня 2010

Почему вы хотите это сделать?Вероятно, лучше рассчитать сумму, когда вам это нужно, с помощью методов аннотации:

from django.db import Sum
my_head = Head.objects.get(pk=myid).annotate(item_sum=Sum(item__itemamount))
...