У меня есть модель бронирования, которая должна проверить, доступен ли доступный предмет. Я бы хотел, чтобы логика выясняла, доступен ли элемент централизованно, так что независимо от того, где я сохраняю экземпляр, этот код подтверждает, что он может быть сохранен.
В настоящий момент у меня есть этот код в пользовательской функции сохранения моего класса модели:
def save(self):
if self.is_available(): # my custom check availability function
super(MyObj, self).save()
else:
# this is the bit I'm stuck with..
raise forms.ValidationError('Item already booked for those dates')
Это отлично работает - ошибка возникает, если элемент недоступен, и мой элемент не сохраняется. Я могу зафиксировать исключение из моего кода формы переднего конца, но как насчет сайта администратора Django? Как я могу заставить свое исключение отображаться как любая другая ошибка проверки на сайте администратора?