Переменная Django не работает при пустом POST

У меня есть следующий шаблон в django.

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Question</title>
</head>
<body>
    <h1>{{ question.question_text }} {{ question.id }}</h1>
    <form action="{% url 'polls:vote' question.id %}" method="post">
        {% csrf_token %}
        {% if error_message %}
            <p><strong>{{ error_message }}</strong></p>
        {% endif %}
        {% if question.choice_set.all %}
            {% for choice in question.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 %}
            <br>
            <input type="submit" value="Vote">
        {% else %}
            <p>No choices available.</p>
        {% endif %}
    </form>
</body>
</html>

Если я выберу значение для формы, она будет работать корректно и POST на /polls/1/vote/. Однако если я оставлю форму пустой и отправлю, я получу ошибку:

NoReverseMatch at /polls/1/vote/ Не найдено обратного соответствия для 'vote' с аргументами '('',)'. Проверено 1 шаблон(ы): ['polls/(?P<question_id>[0-9]+)/vote/$']

Вот мой urls.py:

from django.urls import path

from . import views

app_name = 'polls'
urlpatterns = [
    path('', views.IndexView.as_view(), name='index'),
    path('<int:pk>/', views.DetailView.as_view(), name = 'detail'),
    path('<int:question_id>/vote/', views.vote, name='vote'),
    path('<int:question_id>/results/', views.results, name='results'),
]
Вернуться на верх