Как вызвать ошибку 410 в Django

Я бы хотел вернуть 410 ошибок на некоторых из моих страниц Django вместо возврата 404 . В принципе, вместо вызова поднять Http404 ('какое-то сообщение об ошибке') , я хотел бы вместо этого вызвать ярлык поднять Http410 ('какое-то сообщение об ошибке') .

Я запутался, потому что в django.http, функция Http404 выглядит просто:

class Http404(Exception):
    pass

Итак, если я сделаю то же самое и создам свою функцию Http410, я бы предположил, что это будет выглядеть так:

class Http410(Exception):
    pass

Однако выполнение этого возвращает исключение, но выдает ошибку 500 страница. Как мне воссоздать волшебство исключения Http404? Я должен отметить, что мне нужно вызвать исключение из моих моделей (не представлений), поэтому я не могу просто вернуть HttpResponseGone.

Заранее спасибо!

Обновление:

Я сбит с толку, потому что в django.http функция Http404 выглядит просто:

class Http404(Exception):
    pass

Итак, если я сделаю то же самое и создам свою функцию Http410, я бы предположил, что это будет выглядеть так:

class Http410(Exception):
    pass

Однако это вернет исключение, но обслуживает страницу с 500 ошибками. Как мне воссоздать волшебство исключения Http404? Я должен отметить, что мне нужно вызвать исключение из моих моделей (не представлений), поэтому я не могу просто вернуть HttpResponseGone.

Заранее спасибо!

Обновление:

Я сбит с толку, потому что в django.http функция Http404 выглядит просто:

class Http404(Exception):
    pass

Итак, если я сделаю то же самое и создам свою функцию Http410, я бы предположил, что это будет выглядеть так:

class Http410(Exception):
    pass

Однако это вернет исключение, но обслуживает страницу с 500 ошибками. Как мне воссоздать волшебство исключения Http404? Я должен отметить, что мне нужно вызвать исключение из моих моделей (не представлений), поэтому я не могу просто вернуть HttpResponseGone.

Заранее спасибо!

Обновление: Я полностью осведомлен о HttpResponseGone и упомянул об этом в своем первоначальном вопросе. Я уже знаю, как вернуть это в свои представления. Мой вопрос: как вы вызываете исключение Http 410 аналогично тому, как вы вызываете исключение Http 404? Я хочу иметь возможность вызывать это исключение где угодно, а не только в моих представлениях. Спасибо!

10
задан James A Mohler 30 November 2012 в 02:17
поделиться