1. Сделайте страницу которая будет делать OrderItem.objects.filter(pk=order_item_id).update(total=33)
2. Переопределите у своего ModelAdmin save_model, примерно так (я не тестировал этот код):
def save_model(self, request, obj, form, change):
if 'total' in form.changed_data:
# В OrderItem.save обработайте параметр update_total
obj.save(update_total=False)
else:
obj.save(update_total=True)
Тут проблемы могут возникнуть в зависимости от сложности вашего ModelAdmin, думаю при наличии inline может что-то пойти не так ...
3. Можно сделать надёжно и тупо:
def save_model(self, request, obj, form, change):
if 'total' in form.changed_data:
custom_total = obj.total
super().save_model(request, obj, form, change)
OrderItem.objects.filter(pk=obj.pk).update(total=custom_total)
else:
super().save_model(request, obj, form, change)