Я думаю, что самым простым способом было бы переопределить конкретную страницу администратора для этой модели. Это описано здесь в документации Django. Шаблон, который нужно переопределить, вероятно, change_form.html
. Внутри этих шаблонов отображаемый объект доступен в переменной шаблона original
.
Я бы добавил метод или свойство к вашей модели, которое генерирует и возвращает сообщение об ошибке и вызывает этот метод из шаблона.
Редактировать : посмотрите на contrib/admin/templates/admin/change_form.html
, есть включение для includes/fieldset.html
, которое отображает поля сайта администратора. Вы можете поместить туда код, который проверяется, если модель имеет какой-то специальный именованный атрибут, и если так, то он отображается. Вы можете просто переопределить это change_form.html
для всех моделей с вашей пользовательской.