Использование ajax и django для удаления элемента в цикле for

-1

Попытка удалить сообщение/комментарий с помощью начальной загрузки × при щелчке и исчезновения. У меня есть код, написанный, но он не работает. Я чувствую, что мне не хватает чего-то такого простого. Любые рекомендации или помощь будут высоко оценены. urls.py

url(r'^delete/(?P<pk>\d+)/$', views.delete, name='delete'),

views.py

@login_required
def delete(request, pk):
    warn = get_object_or_404(Warning, pk=pk)
    fop = get_object_or_404(Followers, pk=warn.person.pk)
    warn.delete()
    return redirect('yardsale.views.follower_warnings', pk=fop.pk)

шаблон

{% for warns in warn.warnings.all %}
                <div class="warning-list col-md-4">
                {# <a href="{% url 'delete' pk=warns.pk %}"> #}
                <button type="button" class="close">&times;</button>
                {# </a> #}
                <div class="publish-date"><strong>Warned:</strong>  {{ warns.publish_date }}</div>
                <div class="posted-by"><strong>Warned By: </strong> {{ warns.author }}</div>
            <div class="warningtype"><strong>Warning Type: </strong>{{ warns.WarningType }}</div>
            <div class="description">
                <strong>Description:</strong> {{ warns.descript }}
            </div>
            {% endfor %}

main.js

$(".close").click(function () {
  if (confirm("Are you sure you want to delete this?")){
$.ajax({
  type: "DELETE",
  url: "{% url 'delete' pk=warns.pk %}",
  beforeSend: function(xhr) {
    xhr.setRequestHeader("X-CSRFToken", getCookie("csrftoken"));
  }
  success: function() {
    var close=$(this).parent();
    close.fadeOut(1000);
     });
    }
   })
  }
 });

1 ответ

0
Лучший ответ

Main.js выглядит следующим образом.

$(".close").click(function () {
  var close=$(this).parent();
  if (confirm("Are you sure you want to delete this?")){
    $.ajax({
      type: "DELETE",
      url: $(this).data('url'),
      beforeSend: function(xhr) {
        xhr.setRequestHeader("X-CSRFToken", getCookie("csrftoken"));
      },
      success: function() {
        close.fadeOut(1000);
      }
    });
  }
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню