#python #django #web
#python #django #веб
Вопрос:
Итак, я удаляю объект модели с помощью DeleteView и перенаправляю на домашнюю страницу после успешного удаления, работает нормально. Но проблема заключается в том, когда я пытаюсь вернуться на предыдущую страницу после удаления (используя кнопку со стрелкой влево в браузере). Я получаю ошибку «страница не найдена», которая имеет смысл, потому что я пытаюсь вернуться на страницу удаления объекта, который больше не существует. Как мне предотвратить это?
Ответ №1:
Если вы используете для удаления (общие) представления на основе классов, вы можете использовать reverse_lazy
для перенаправления после удаления. В случае, если вы используете функциональные представления, вы можете redirect
после успешного удаления объекта из базы данных.
Комментарии:
1. Я использую success_url=reverse_lazy() для перенаправления
2. если вы используете обратный ленивый для перенаправления, то какой смысл возвращаться на страницу. Если это так, сервер должен ответить 404, поскольку сообщение больше не существует.
3. Я понимаю. Мой вопрос в том, идеально ли в этом случае получать ошибку 404?
4. да, если вы запрашиваете базу данных и ничего не получаете, сервер должен вернуть ошибку 404 not found an . вы можете использовать
get_object_or_404
специально для отправки 404.