Django Polls-App: динамическое изменение количества вариантов в create-poll-form

После прохождения учебника Django для начинающих мне удалось создать форму для создания нового опроса с несколькими вариантами выбора. Теперь я хочу добавить кнопку, которая добавляет еще одно текстовое поле для другого выбора. Я новичок в веб-разработке, и мне сложно передавать переменные из шаблонов в представления. Я прочитал здесь: Passing variable from django template to view, что есть по сути 4 способа сделать это. Сейчас я использую вариант №3 для указания количества отображаемых вариантов, но я уверен, что вариант №1 будет более элегантным, так как количество вариантов не будет отображаться в url. Вот мой текущий код:

{% extends "base.html" %}

{% block content %}
    {%  load static %}
    <link rel="stylesheet" type="text/css" href="{% static "polls/style.css" %}">
    <form method="POST" enctype="multipart/form-data"> {% csrf_token %}
    {{ form.as_p }}
    {{ choice_forms.management_data }}
    <div class="pollschoice">{{ choice_forms.as_ul }}</div>
    <a href="{% url "polls:create" nr_of_choices|add:1 %}"><input type="button", value="Add Choice"> </a>
    <a href="{% url "polls:create" nr_of_choices|add:-1 %}"><input type="button", value="Remove Choice"> </a>
    <input type="submit", value="Save" />
    </form>
{% endblock %}

def createview(request, nr_of_choices):
    # initialize forms
    nr_of_choices = max(nr_of_choices, 1)
    form = QuestionForm(request.POST or None)
    choiceFormSet = formset_factory(ChoiceForm, extra=nr_of_choices)
    choice_forms = choiceFormSet(request.POST or None)

    # save question to get question id
    if form.is_valid():
        form.save()

    valid_choices = 0
    for choice_form in choice_forms:
        if choice_form.is_valid():
            # create choice instance
            try:
                valid_choices += 1
                c = Choice( question=Question.objects.last(),
                            choice_text=choice_form.cleaned_data["choice_text"],
                            votes=choice_form.cleaned_data["votes"]
                            )
                c.save()
            except KeyError:
                pass

    if not valid_choices and form.is_valid():
        Question.objects.last().delete()
    else:
        form = QuestionForm()
        choice_form = choiceFormSet()

    context = {
        "form": form,
        "choice_forms": choice_forms,
        "nr_of_choices": nr_of_choices,
    }

    return render(request, "polls/create.html", context)

И в моих url-шаблонах я получил эту строку: path("create/<int:nr_of_choices>", views.createview, name="create")

Как мне изменить параметр nr_of_choices моего представления с помощью кнопки в HTML-коде без изменения url?

Вернуться на верх