Получение нулевого значения при отправке данных в django с помощью ajax

Я пытаюсь отправить данные из ввода в мое представление django, чтобы сделать некоторую обработку этих данных, которые являются текстом, и я использую AJAX, но я получаю ввод NULL в моем представлении

$(document).on('submit', '#post-form',function(e){
    $.ajax({
        type:'POST',
        url:'{% url "index" %}',
        data:{
            inp:$('#qst').val()   
            csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(),
            action: 'post'
        },
        dataType: 'json',
        success:function(json){
            document.getElementById("post-form").reset();
            $(".messages_area").append('<div class="messages__item messages__item--visitor">'+json.inp+'</div>')
            $(".messages_area").append('<div class="messages__item messages__item--operator">'+json.answer+'</div>')
            
        },
        error : function(xhr,errmsg,err) {
        console.log(xhr.status + ":" + xhr.responseText); // provide a bit more info about the error to the console
    }
    
});
});

И это мое мнение

def chat(request):
    context={}
    inp=""      
   response_data = {}

    if request.method == 'POST' and request.is_ajax:
        inp = request.POST.get('inp')
        answer=respond(inp)
        response_data['answer'] = answer
        response_data['inp'] = inp
        

        return JsonResponse(response_data)

            
    
        
    return render(request, 'templates/rhchatbot/index.html',context )

Но когда я вывожу значение inp, я получаю : {'inp':null}

Сначала необходимо добавить атрибут name к полю ввода:

<input id='qst' type="text" placeholder="Write a message..." name="inp">

тогда вы можете попробовать следующее:

$("#post-form").submit(function (e) {
    e.preventDefault();
    var serializedData = $(this).serialize();
    $.ajax({
         type: 'POST',
         url: "{% url 'index' %}",
         data: serializedData,
         success: function (json) {
              document.getElementById("post-form").reset();
              $(".messages_area").append('<div class="messages__item messages__item--visitor">'+json.inp+'</div>')
              $(".messages_area").append('<div class="messages__item messages__item--operator">'+json.answer+'</div>')

         },
         error: function (xhr,errmsg,err) {
              console.log(xhr.status + ":" + xhr.responseText);
         }
     })
})
Вернуться на верх