Django admin returns custom error message while saving model

I would like to return some custom error messages in the save_model function of the Django admin page.

 class EmployerAdmin(admin.ModelAdmin): exclude = ('update_user','updatedate','activatedate','activate_user') def save_model(self, request, obj, form, change): if obj.department != None and obj.isDepartmentSuggested: obj.isDepartmentSuggested =False else: return "You don't set a valid department. Do you want to continue ?" obj.update_user = request.user obj.updatedate = datetime.datetime.now() obj.save() 

Of course, the Else part is wrong, but I want to illustrate what I want.

I am pleased to offer me a way or document to do this. Thanks

+7
source share
2 answers

You need to use the confirmation form in your EmployerAdmin:

 #forms.py from your_app.models import Employer class EmployerAdminForm(forms.ModelForm): class Meta: model = Employer def clean(self): cleaned_data = self.cleaned_data department = cleaned_data.get('department') isDepartmentSuggested = cleaned_data.get('isDepartmentSuggested') if department == None and not isDepartmentSuggested: raise forms.ValidationError(u"You haven't set a valid department. Do you want to continue?") return cleaned_data #admin.py from django.contrib import admin from your_app.forms import EmployerAdminForm from your_app.models import Employer class EmployerAdmin(admin.ModelAdmin): exclude = ('update_user','updatedate','activatedate','activate_user') form = EmployerAdminForm admin.site.register(Employer, EmployerAdmin) 

Hope this helps you.

+10
source

I am using Django 1.6.3 and I would like to add Brandon to the answer.

Add admin.site.register(Employer, EmployerAdmin) on a separate line under the EmployerAdmin class; i.e. below form = EmployerAdminForm , unindented.

It took me a while to figure out why Brandon's answer didn’t work for me and the checks did not work, apparently you just need to register it with admin first.

Greetings.

0
source

All Articles