как шоу персонализировало ошибку с get_object_or_404

я хотел бы знать, как шоу персонализировало ошибку с get_object_or_404?, я не хочу нормальные http404 страницы, я хочу отобразиться, сообщение с результатом не ни один

спасибо :)

10
задан Török Gábor 14 July 2010 в 07:37
поделиться

3 ответа

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: ... блок, но я, честно говоря, не могу придумать для этого вескую причину.

16
ответ дан 3 December 2019 в 17:19
поделиться

И почему именно вы не используете возможности вашего сервера для этого?
get_object_or_404 () перенаправляет на страницу 404 по умолчанию, верно?
Если вы находитесь в режиме отладки, вы его не увидите, но при развертывании django просто будет ссылаться на страницу 404 html сервера.

2
ответ дан 3 December 2019 в 17:19
поделиться

Этого нельзя сделать с помощью этого ярлыка. Это вызовет только исключение Http404. Лучше всего попытаться поймать , если вы хотите полный контроль. Например.

try:
    obj = Model.objects.get(pk = foo)
except:
    return HttpResponseRedirect('/no/foo/for/you')
    #or
    return render_to_response ...
1
ответ дан 3 December 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: