Вы в основном делаете то же самое, что и метод get()
класса, и просто добавляете некоторую информацию об ошибке в контекст.
def delete(self, request, *args, **kwargs):
self.object = self.get_object()
success_url = self.get_success_url()
try:
self.object.delete()
# Redirect to success_url
except ProtectedError:
context = self.get_context_data(
object=self.object,
error='Object is protected'
)
return self.render_to_response(context)
return HttpResponseRedirect(success_url)
Посетите https://ccbv.co.uk , чтобы получить лучшее представление о том, как представления на основе классов Django работают под капотом.
Затем вы должны отобразить ошибку в вашем шаблоне. Вот пример с шаблоном из документов Django:
По вопросу (1), Tomcat работает отлично для развертывания сервлетов в рабочий сервер. Могут быть проблемы w.r.t. безопасность или возможно D.O.S. или настраивающие причины, почему у Вас были бы отдельные экземпляры сервера.
У Вас есть гибкость, чтобы сделать так или иначе, но часто более удобно развернуться к уже рабочему серверу. Это - ВСТРОЕННАЯ функция в архитектуре сервлета.:)
Для (2), снова это по Вашему усмотрению, где Вы Вы хотите поместить ВОЙНЫ. Это кажется, что у Вас уже есть он, настроил нестандартное (не по умолчанию, я должен сказать), путь. Проверьте свой файл server.xml на настройки в Вашем экземпляре (экземплярах) сервера. Проверьте на атрибуты как unpackWARs
и autoDeploy
.
Для (3) и (4), плюс Ваш (1,2) вопросы, это могла бы быть хорошая идея консультироваться с документами Tomcat для Вашей версии Tomcat на ее модели развертывания. Необходимо смочь использовать те же документы, чтобы выяснить, как сервер был настроен.
См. веб-приложение Tomcat Развертывание в руководстве Tomcat, корректирующемся для Вашей версии Tomcat.
Одно решение состояло бы в том, чтобы использовать приложение менеджера. Если Вы решаете, что это безопасно использовать его, то можно легко развернуться, запустите, остановите и не разверните приложения:
http://localhost:8080/manager/deploy?path= [context_path] http://localhost:8080/manager/start?path= [context_path] http://localhost:8080/manager/stop?path= [context_path] http://localhost:8080/manager/undeploy?path= [context_path]
Существуют задачи Ant, которые могут помочь Вам с ними.
Я предполагаю, но не знаю наверняка, та остановка и запущение приложения заставят его перечитать context.xml.
Относительно Вашего второго вопроса я полагаю, что это лучше по причинам обслуживания сохранить военные файлы в каталоге веб-приложений.