2016-01-18 3 views
0

До сих пор (1) и (2) дают одинаковые результаты в моей среде разработки Django. Но действительно ли они эквивалентны, или я в конечном итоге потеряю некоторые сообщения в настройках, которые я не могу предсказать заранее?Включить или не мои сообщения в HttpResponseRedirect?

(1) 

return HttpResponseRedirect('/my/home/page', messages.add_message(request, messages.INFO, 'My message here')) 

(2) 

messages.add_message(request, messages.INFO, 'My message here') 
return HttpResponseRedirect('/my/home/page') 

ответ

2

Оба способа работают, потому что messages.add_message() добавляет сообщение на свое место в-request.session. Но первое выглядит очень странно. add_message не возвращает ничего полезного для включения в HttpResponseRedirect. Поэтому я считаю, вы должны пойти с вторым вариантом:

messages.add_message(request, messages.INFO, 'My message here') 
return HttpResponseRedirect('/my/home/page') 

или, используя пару ярлыков,

from django.shortcuts import redirect 

messages.info(request, 'My message here') 
return redirect('/my/home/page') 
+0

Спасибо вам Алекс. Я был озадачен, потому что оба производят тот же результат. – pebox11

Смежные вопросы