Jquery не отправляет правильный идентификатор элемента в Django - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь отправить некоторые данные формы в django через ajax. данные, которые я посылаю, являются идентификатором объекта. Но когда я звоню ajax, он не посылает правильный идентификатор предмета. иногда он отправляет идентификатор только первого элемента.

views.py

def contact(request):
    msg = Message.objects.all()
    if request.POST.get('action')=="post":
        idi = request.POST.get('id')
        print(idi)
        ms = Message.objects.get(id = idi)
        print(ms)
        return render(request, "dashboard/contact.html", {"msg": msg, "ms": ms})
    return render(request, "dashboard/contact.html", {"msg": msg})

ajax

$(function() {
                    // Remove button click
                     $(document).on(
                        'click',
                        '.ida',
                        function(e) {
                            e.preventDefault();
                            var pk = $(this).attr('value')
                            $.ajax({
                                type: "POST",
                                url: '{% url "contact" %}',
                                data: {
                                    id: pk,
                                    csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(),
                                    action: "post",

                                },

                                success:function(){
                                    console.log(pk)
                                }

                            });
                        });
                 });

форма

<form>
       {% csrf_token %}
       <input type="hidden" name="id" value="{{m.id}}" id="id">
       <button type="button" class="btn btn-success ida" data-toggle="modal" data-target="#exampleModal">View</button>
</form>

Спасибо заранее.

1 Ответ

0 голосов
/ 07 апреля 2020

Похоже, вы неправильно используете JQuery. Вы можете использовать это так. Я думаю, что вы получаете проблему, основанную на значении.

$('#id').change(function(){
    var pk = document.getElementById('id');
    var formData = new FormData();
    formData.append("csrfmiddlewaretoken", '{{ csrf_token }}');
    formData.append("pk", pk);
    $.ajax({
        method: 'POST',           
        url : '{% url "contact" %}',
        dataType: "json",
        data : formData,
        success:function(){
            console.log(pk);
       }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...