Django:在管理员 "clean" 之后执行的方法
Django: Method to execute after "clean" in admin
很简单:在“clean”方法之后可以覆盖哪个方法?我正在使用“干净”来验证上传的图像,一旦我确认它没问题并保存,我想使用一些外部 API:
来切换它
class FooAdminForm(forms.ModelForm):
class Meta:
model = Asset
fields = ["name", "file",]
def clean(self):
cleaned_data = super(FooAdminForm, self).clean()
...
return cleaned_data
def bar(self):
# do stuff with new data in database
class FooAdmin(admin.ModelAdmin):
list_display = ["name", "file",]
form = FooAdminForm
有什么方法bar
可以满足我的需要吗?还是我必须努力处理信号(比如 )?
ModelAdmin
class 有一个方法 save_model
[Django docs] 调用它来保存模型实例,因此您可以在需要时覆盖它:
class FooAdmin(admin.ModelAdmin):
list_display = ["name", "file",]
form = FooAdminForm
def save_model(self, request, obj, form, change):
super().save_model(request, obj, form, change)
# Do something with `obj`
很简单:在“clean”方法之后可以覆盖哪个方法?我正在使用“干净”来验证上传的图像,一旦我确认它没问题并保存,我想使用一些外部 API:
来切换它class FooAdminForm(forms.ModelForm):
class Meta:
model = Asset
fields = ["name", "file",]
def clean(self):
cleaned_data = super(FooAdminForm, self).clean()
...
return cleaned_data
def bar(self):
# do stuff with new data in database
class FooAdmin(admin.ModelAdmin):
list_display = ["name", "file",]
form = FooAdminForm
有什么方法bar
可以满足我的需要吗?还是我必须努力处理信号(比如
ModelAdmin
class 有一个方法 save_model
[Django docs] 调用它来保存模型实例,因此您可以在需要时覆盖它:
class FooAdmin(admin.ModelAdmin):
list_display = ["name", "file",]
form = FooAdminForm
def save_model(self, request, obj, form, change):
super().save_model(request, obj, form, change)
# Do something with `obj`