Как передать значение из ajax в представления

У меня есть поле выбора в моем шаблоне и каждый раз, когда я изменяю значение, я должен нажать кнопку, чтобы отправить значение. Я знаю, что ajax может решить эту проблему, но вот что я пытаюсь сделать следующим образом:

Views.py

def check_state(request,n):
    if request.method=='POST':
        state= request.POST.get('thestate')
        dict1 = {'name':name}
        print(dict1)
        return JsonResponse(dict1, safe=False)

template.html

<select id="select_state" name="updated_state">
<option  disabled="true" selected>{{current_state}}</option>

{% for state in States %}
<option>{{state}}</option>

{% endfor %}


   
<script> 

var state = document.getElementById( "select_state" );
var x=state.addEventListener( "change", output, true );


function output() {
  console.log ( state.value );
  $.ajaxSetup({ 
     beforeSend: function(xhr, settings) {
         function getCookie(name) {
             var cookieValue = null;
             if (document.cookie && document.cookie != '') {
                 var cookies = document.cookie.split(';');
                 for (var i = 0; i < cookies.length; i++) {
                     var cookie = jQuery.trim(cookies[i]);
                     // Does this cookie string begin with the name we want?
                     if (cookie.substring(0, name.length + 1) == (name + '=')) {
                         cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                         break;
                     }
                 }
             }
             return cookieValue;
         }
         if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
             // Only send the token to relative URLs i.e. locally.
             xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
         }
     } 
});

  $.ajax({
    url:'/req-3', # it will call check_state function in views.py
    method:'POST',
    data: {thestate:state.value},
    dataType: "json",    
    processData:false,
    csrfmiddlewaretoken:'{{ csrf_token }}',
    success:function (response){
            alert(response.thestate);
      }
    
    
    })






}

</script>

но по какой-то причине я не получаю никаких данных при изменении. Думаю, я что-то упустил?

Заключение

Я хочу изменить значение в базе данных без кнопки отправки

Вернуться на верх