Добавление уникального id к новой динамически создаваемой форме с помощью django htmx

Я пытаюсь создать динамическую форму, в которой пользователь может создать столько вопросов, сколько он хочет, и в то же время добавить ответы на каждый вопрос, сколько он хочет (максимальное количество ответов - 4). Я использую htmx для добавления новых вопросов и ответов. Я могу добавлять больше вопросов при нажатии на кнопку "Добавить вопрос" и больше ответов при нажатии на кнопку "Добавить ответ". Однако, когда я пытаюсь добавить больше ответов на вопрос 2 или 3, добавляется новая форма ответа только на вопрос 1. Я хочу, чтобы ответы были добавлены в соответствующие вопросы. Помогите мне с этой проблемой.

add_quiz_questions.html

{% load crispy_forms_tags %}
<div class="container-fluid">
  <!-- Main Content Here -->
  <form method="POST" enctype="multipart/form-data">
    <div class="card shadow mb-4">
        <!-- <div class="card-header py-3">
            <h6 class="m-0 font-weight-bold text-primary ">Post Your Announcements</h6>
        </div> -->
        <div class="card-body">
            {% csrf_token %}
            {{ questionform.question|as_crispy_field}}
            <div>
              {{ answerform.answer|as_crispy_field}}
              {{ answerform.correct_answer|as_crispy_field}}
              <div id="addanswer"></div>
            </div>
            <button hx-get="{% url 'add_quiz_answer' %}" hx-swap="beforeend" hx-target="#addanswer" class="btn btn-info">Add Answer</button>
            <button type="submit" class="btn btn-primary">Save</button>
        </div>
        <div id="addquestion"></div>
    </div>
    <button hx-get="{% url 'add_quiz_question' %}" hx-swap="beforeend" style="margin-bottom:30px" hx-target="#addquestion" class="btn btn-info"> Add Question</button>
  </form>
</div>

create_question.html

{% load crispy_forms_tags %}

{% csrf_token %}

<div class="card shadow mb-4">
    <!-- <div class="card-header py-3">
        <h6 class="m-0 font-weight-bold text-primary ">Post Your Announcements</h6>
    </div> -->
    <div class="card-body">
        {% csrf_token %}
        {{ questionform.question|as_crispy_field}}
        <div>
          {{ answerform.answer|as_crispy_field}}
          {{ answerform.correct_answer|as_crispy_field}}
          <div id="addanswer1"></div>
        </div>
        <button hx-get="{% url 'add_quiz_answer' %}" hx-swap="afterend" hx-target="#addanswer1" class="btn btn-info">Add Answer</button>
        <button type="submit" class="btn btn-primary">Save</button>
    </div>
</div>

create_answer.html

<div>
{{ answerform.answer|as_crispy_field}}
{{ answerform.correct_answer|as_crispy_field}}

views.py

def addQuizQuestion(request):
questionform = QuizQuestionForm()
answerform = QuizAnswerForm()
context = {'questionform':questionform, 'answerform':answerform }
return render(request, 'assessments/partials/create_question.html', context)

def addQuizAnswer(request):
    answerform = QuizAnswerForm()
    context = {'answerform':answerform}
    return render(request, 'assessments/partials/create_answer.html', context)

Я нашел решение. Я меняю div id ответа на "this". И мне просто нужно изменить hx-swap на "beforebegin" и изменить hx-target на this.

  <button hx-get="{% url 'add_quiz_answer' %}" hx-swap="beforebegin" hx-target="this" class="btn btn-info">Add Answer</button>
Вернуться на верх