Как добавить поле в админке django, не связанное с моделью?
Я хочу добавить флажок в Django Admin, который не связан с полем в моей модели. В зависимости от значения флажка я хочу выполнять некоторые дополнительные действия.
class DeviceAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
#if checkbox:
# do_extra_actions()
super(DeviceAdmin, self).save_model(request, obj, form, change)
Как добавить этот флажок в форму администрирования django для моей модели Device
и получить значение в функции save_model
?
Вы можете сначала создать ModelForm
с таким дополнительным флажком:
class DeviceModelForm(forms.ModelForm):
extra_checkbox = forms.BooleanField(required=False)
Затем вы подключаете это к DeviceAdmin
и проверяете его значение:
class DeviceAdmin(admin.ModelAdmin):
form = DeviceModelForm
def save_model(self, request, obj, form, change):
if form.cleaned_data['extra_checkbox']:
# do_extra_actions()
pass
return super().save_model(request, obj, form, change)