Здравствуйте! Решил познакомиться с Джанго, прохожу туториал на офф.странице. Там делается приложение для голосования. Его принцип действия такой: заходишь на гл.стр. приложения, видишь лист - ссылки на отдельные голосования. Заходишь на нужное, видишь вопрос и 3 радиокнопки. Шаблон страницы выглядит так:
<h1>{{ poll.question }}</h1>
{% if error_message %}<p><strong>{{ error_message }}</strong></p>{% endif %}
<form action="{% url 'polls:vote' poll.id %}" method="post">
{% csrf_token %}
{% for choice in poll.choice_set.all %}
<input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}" />
<label for="choice{{ forloop.counter }}">{{ choice.choice_text }}</label><br />
{% endfor %}
<input type="submit" value="Vote" />
</form>
Как я понял, при нажатии кнопки 'vote' должен быть переход на страницу формата polls/id/vote
view для vote следующий
def vote(request, poll_id):
p = get_object_or_404(Poll, pk=poll_id)
try:
selected_choice = p.choice_set.get(pk=request.POST['choice'])
except (KeyError, Choice.DoesNotExist):
# Redisplay the poll voting form.
return render(request, 'polls/detail.html', {
'poll': p,
'error_message': "You didn't select a choice.",
})
else:
selected_choice.votes += 1
selected_choice.save()
# Always return an HttpResponseRedirect after successfully dealing
# with POST data. This prevents data from being posted twice if a
# user hits the Back button.
return HttpResponseRedirect(reverse('polls:results', args=(p.id,)))
Эта страница в свою очередь направляет на страницу polls/id/result.
Проблема заключается в том, что после показа самой формы для голосования, выбора нужного варианта и нажатия на кнопку 'vote' показывается пустая страница с пустым исходным кодом. Что я делаю не так?