Как добавить поле в админке 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)
Вернуться на верх