私は2つのモデルを持っています:
class Tickets(models.Model):
ticketnumber = models.IntegerField()
total_amount = models.DecimalField()
class TicketItems(models.Model):
name = models.Charfield(max_length=30)
ticket = models.ForeignKey(Tickets)
price = models.DecimalField()
amount = models.IntergerField()
ユーザーがチケットアイテムを追加できるインライン管理ページがあります。保存時にすべての TicketItems からモデル チケットの total_mount を更新するにはどうすればよいですか (価格 * 金額)?
Django のドキュメントでは、これを admin.py に追加するように指示されています。
class TicketAdmin(admin.ModelAdmin):
def save_formset(self, request, form, formset, change):
instances = formset.save(commit=False)
for instance in instances:
instance.user = request.user
instance.save()
formset.save_m2m()
私は多くのことを試しましたが、合計金額を更新できません.ここに私のadmin.pyがあります:
class TicketitemsInline(admin.TabularInline):
model = Ticketitems
class TicketsAdmin(admin.ModelAdmin):
inlines = [
TicketitemsInline,
]
def save_formset(self, request, form, formset, change):
instances = formset.save(commit=False)
for instance in instances:
instance.user = request.user
instance.save()
instance.update_total_amount()
formset.save_m2m()
admin.site.register(Tickets, TicketsAdmin)