Python 如何在django管理面板中保存文件时实现脚本?
我是django的新手。 我想在通过“管理面板”上传到服务器后运行脚本(例如压缩文件),即当用户从“管理面板”点击“保存”时,它应该在上传后压缩(或我可能想要实现的其他操作)。 或者,当用户点击“保存”按钮时,您可以告诉我调用了哪个函数。您可以使用以下信号:Python 如何在django管理面板中保存文件时实现脚本?,python,django,django-admin,Python,Django,Django Admin,我是django的新手。 我想在通过“管理面板”上传到服务器后运行脚本(例如压缩文件),即当用户从“管理面板”点击“保存”时,它应该在上传后压缩(或我可能想要实现的其他操作)。 或者,当用户点击“保存”按钮时,您可以告诉我调用了哪个函数。您可以使用以下信号: 检测保存操作。信号可能会起作用,但OP似乎只想在从“管理”面板创建或更改对象时执行操作 我认为最好的方法是使用ModelAdmin方法save\u model() 从: 您可以在管理类的定义中覆盖此方法,如下所示: class SomeOb
检测保存操作。信号可能会起作用,但OP似乎只想在从“管理”面板创建或更改对象时执行操作 我认为最好的方法是使用ModelAdmin方法
save\u model()
从:
您可以在管理类的定义中覆盖此方法,如下所示:
class SomeObjectAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
# do any pre-save stuff here
obj.save()
change
arg是一个布尔值,如果对象正在更改,则为True;如果对象是第一次创建,则为false。因此,如果只想在对象创建时执行某些函数:
def save_model(self, request, obj, form, change):
if not change:
# do your compression here
# do any other pre-save stuff here
obj.save()
# do any post-save stuff here
def save_model(self, request, obj, form, change):
if not change:
# do your compression here
# do any other pre-save stuff here
obj.save()
# do any post-save stuff here