Django ValidationError в админке save_model

Models.py

class user(AbstractUser):
    salary_number = models.IntegerField(unique=True, null=True, blank=True)    

Admin.py

def save_model(self, request, obj, form, change):
    if obj.salary_number == None:
        raise ValidationError("ERROR salary number!")
    ....
    obj.save()

Я пытаюсь показать ошибку для пользователя, если он забыл заполнить номер зарплаты, но получаю ошибку ValidationError в /admin/information/user/add/. Как я могу это исправить?

У меня есть причина не устанавливать номер_зарплаты null & blank = False.

Самый простой способ, вероятно, состоит в том, чтобы сделать небольшой ModelForm:

from django import forms
from django.core.exceptions import ValidationError

class UserModelForm(forms.ModelForm):
    
    def clean_salary_number(self):
        data = self.cleaned_data['salary_number']
        if data is None:
            raise ValidationError('ERROR salary number!')
        return data

и затем подключите это к ModelAdmin:

from django.contrib import admin

class MyModelAdmin(admin.ModelAdmin):
    # …
    form = UserModelForm
Вернуться на верх