Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在django admin更改另一个值时动态更改条目的值_Django_Django Admin - Fatal编程技术网

如何在django admin更改另一个值时动态更改条目的值

如何在django admin更改另一个值时动态更改条目的值,django,django-admin,Django,Django Admin,这里,当管理员更改“is_valid”时,我想将另一个整数字段的值减1,因为您只想从ModelAdmin添加一些预保存操作,您应该重写save_model方法,减小所述值,并触发model.save()方法: from django.contrib import admin from .models import Order class OrderAdmin(admin.ModelAdmin): list_display = ('id', 'name', 'product', 'ema

这里,当管理员更改“is_valid”时,我想将另一个整数字段的值减1

,因为您只想从
ModelAdmin
添加一些预保存操作,您应该重写
save_model
方法,减小所述值,并触发
model.save()
方法:

from django.contrib import admin
from .models import Order

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

admin.site.register(Order, OrderAdmin)

仅从管理界面?或者由
is_superuser
user从任何界面?仅由任何员工从管理界面
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)