@rm_root

Django 3 + Ajax как вызвать повторно цикл который рендерит записи из бд, после добавления новой записи через форму(Ajax) ???

Есть страница с комментариями, хочу чтобы при отправке форме страница не обновлялась полностью, а только блок с комментами.

Обработал форму с помощью ajax. В бд все заполняется без обновления страницы, но запись который добавился в бд, цикл не видит, он ее выведет только если обновить страницу, как это исправить ???
Прошу руки помощи : )


ajax
<script>
    const formID = 'form#formReview';
    $(formID).on('submit', (e) => {
        e.preventDefault();
        $.ajax({
            
            url: '/news/news_detail/comment/{{news.id}}/{{user.id}}/', 
            type: 'POST',
            dataType: 'json',
            data: {
                comment: $(formID + ' #comment').val()
            },
            success: function (data) {
                console.log('success'); 
            }
        })
        $(formID + ' #comment').val('');
    })
</script>


сама форма
<form id="formReview" action="{% if user_display %} {% url 'news:article_comments' news.id user.id %} {% else %} {% url 'news:article_comments' news.id 13 %} {% endif %}" method="POST">
{% csrf_token %}
   <fieldset disabled>
      <div class="form-group">
         <input type="text" name="name" id="disabledTextInput" class="form-control" placeholder="{{ user.username }}">
      </div>
   </fieldset>
   <textarea name="comment" id="comment" class="form-control" rows="3" required></textarea>
   <input class="btn btn-primary form-control mt-2" type="submit" value="залишити коментарий">
</form>


виввод комментов
{% for comment in comments %}
<div class="row d-flex my-3" >
<div class="col-md-2">
    <img class="img-fluid" src="{% static 'img/user.png' %}" alt="user">
</div>
<div class="col-md-10 comment">
    <strong>{% if comment.id_user.first_name %}{{ comment.id_user.first_name }}{% else %}{{ comment.id_user.username }}{% endif %}</strong> <br>
    <p>{{ comment.comment }}</p>
    <!--  -->
</div>
</div> 
{% endfor %}
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы