я хотел бы знать, как шоу персонализировало ошибку с get_object_or_404
?, я не хочу нормальные http404 страницы, я хочу отобразиться, сообщение с результатом не ни один
спасибо :)
get_object_or_404 ()
, по сути, представляет собой простую 5-строчную функцию. Если у вас нет какой-либо конкретной причины для его использования, просто выполните:
try:
instance = YourModel.objects.get(pk=something)
except YourModel.DoesNotExist:
return render_to_response('a_template_with_your_error_message.html')
Если по какой-либо причине у вас есть для использования get_object_or_404 (), вы можете попробовать вставить его в try: ... Http404: ...
блок, но я, честно говоря, не могу придумать для этого вескую причину.
И почему именно вы не используете возможности вашего сервера для этого?
get_object_or_404 ()
перенаправляет на страницу 404 по умолчанию, верно?
Если вы находитесь в режиме отладки, вы его не увидите, но при развертывании django просто будет ссылаться на страницу 404 html сервера.
Этого нельзя сделать с помощью этого ярлыка. Это вызовет только исключение Http404. Лучше всего попытаться поймать
, если вы хотите полный контроль. Например.
try:
obj = Model.objects.get(pk = foo)
except:
return HttpResponseRedirect('/no/foo/for/you')
#or
return render_to_response ...