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