Как обновить sh <div>в html, а не на всей странице - PullRequest
0 голосов
/ 28 мая 2020

Я хочу обновить sh конкретный раздел (содержащий форму) на странице html, а не всю страницу в Django шаблонах. Форма содержит вопрос и варианты выбора, когда пользователь отправляет форму, которую он перенаправляет на следующий вопрос. ( base. html содержит скрипт, который я использовал для создания таймера обратного отсчета)

question_details. html

{% extends 'app/base.html' %}
{% block content %}
<div>    
   <h2>score -{{user.userextend.score}}</h2>
   <form action="{% url 'app:detail' quiz_id=que.quiz.id question_id=que.id %}" method="post" id="user_form">
      {% csrf_token %}
      {% for choice in que.answer_set.all %}
          <input type="radio" name="choice" id="choice{{ forloop.counter }}" value="{{ choice.id }}">
          <label for="choice{{ forloop.counter }}">{{ choice.answer }}</label><br>

      {% endfor %}
      <input type="submit" value="Next">
   </form>
</div>
{% endblock %}

Ответы [ 2 ]

0 голосов
/ 28 мая 2020

Формы имеют функцию перезагрузки по умолчанию при отправке. Например, при использовании Forms в react. Я могу сказать компоненту, чтобы он не перезагружал страницу при нажатии кнопки отправки.

ex:

    onSubmit = { (e) => { 
        e.preventDefault(); 
        //call function here to update elements
        updateElement(data);
    }}

Что останавливает стандартное поведение перезагрузки страницы при нажатии кнопки отправки.

0 голосов
/ 28 мая 2020
Шаблоны

Django не предназначены для работы как приложение AJAX или SPA. Их заставляют следовать традиционному циклу запроса / ответа, который включает перезагрузку полной страницы. Его можно заставить работать, но вам нужно использовать AJAX или какую-то другую JavaScript библиотеку.

...