Пытаясь сделать форму с Django и используя HttpResponseRedirect, я ожидал, что это должно быть довольно легко, однако я, кажется, что-то делаю неправильно.Django HttpResponseRedirect, он вернулся Нет вместо
Я получаю сообщение об ошибке:
The view hotel.views.hotel_registration didn't return an HttpResponse object. It returned None instead.
В этом случае мое предположение было бы, что HttpResponseRedirect
не работает должным образом, так как, когда я удалить if
заявление с содержимым все работает нормально, за исключением того, я могу Не отправляйте форму.
У меня 2 просмотры:
def hotel_registration(request):
if request.method == 'POST':
form = HotelRegistrationForm(request.POST)
if form.is_valid():
return HttpResponseRedirect('hotel:hotel_registered')
else:
form = HotelRegistrationForm()
return render(request, 'hotel/hotel-registration-form.html', {'form': form})
def hotel_registered(request):
pass
И в urls.py
url(r'hotel-registratie/', hotel.views.hotel_registration, name='registration'),
url(r'hotel-geregistreerd/', hotel.views.hotel_registered, name='registered'),
Это все параметры, которые я использовал в HttpResponseRedirect:
HttpResponseRedirect('hotel:hotel_registered')
HttpResponseRedirect('hotel_registered')
HttpResponseRedirect('/hotel_registered/')
HttpResponseRedirect(hotel_registered)
А потом я ржаветь хотел перенаправить обратно в корень:
HttpResponseRedirect('/')
А с использованием обращенно:
HttpResponseRedirect(reverse(hotel_registration))
HttpResponseRedirect(reverse('hotel_registration'))
Что бы правильный способ сделать это?
У меня возникли проблемы с выяснением вашего точного вопроса/проблемы, но я вижу, где будет отображаться ваше представление None: Когда он вызывается методом GET. Вы должны попытаться уменьшить уровень отступа вашего окончательного результата. –
@JoeyWilhelm Вот и все. –