Поскольку вас интересует только добавление некоторой операции предварительного сохранения из ModelAdmin
, вам следует переопределить метод save_model
, уменьшить указанное значение, и запустить метод Model.save()
:
from django.contrib import admin
class OrderAdmin(admin.ModelAdmin):
list_display = ('id', 'name', 'product', 'email','is_valid','is_delivered', 'order_date')
list_display_links = ('id', 'name',)
list_editable = ('is_valid','is_delivered')
search_fields = ('name', 'email', 'product')
list_per_page = 25
def save_model(self, request, obj, form, change):
# decrement logic here and then trigger save as below
# you have access to the model through obj and form data through form
# e.g.: obj.is_valid and form.changed_data are here
super().save_model(request, obj, form, change)
admin.site.register(Order, OrderAdmin)