Входное значение, установленное с помощью селектора jquery, не публикуется

Есть такая проблема: я создал форму с помощью django. Форма содержит два поля charfields для имени и адреса, и два поля datetimefields одно для start_date и другое для stop_date. Наконец, есть две радиокнопки, такие, что:

  • когда первая радиокнопка отмечена, значение поля start_date устанавливается в date.now(), используя селектор jquery
  • когда вторая радиокнопка отмечена, поля start_date и stop_date отключаются, по-прежнему используя селектор jquery. Приведенный выше код работает хорошо. Однако, когда значение start_date успешно установлено, я должен отправить данные формы с помощью метода jquery ajax post в представление django, значение start_date не отправляется вообще, в то время как значения других полей отправляются. Я не знаю, как решить эту проблему.
  • .

Вот мой код

template.html

HTML 
{% extends 'base.html' %}
<div class="center">
 <form action="" invalidate>
 {% crispy form form.helper %}
</form>
</div>

script.js

JavaScript 
$('input:radio').click(function){
  if ($(this).val() === '1'){
    var start_date = new Date();
    $('#id_start_date').val(start_date);
  }
  else if ($(this).val() === '0'){  document.getElementById('id_stop_date').disabled = true;
document.getElementById('id_start_date').disabled = true;
  }
    
}

$("form").on("submit", function (e){
  var name = $("#id_name");
  var type = $("id_type");
  var start_date = $("id_start_date");
  var stop_date = $("id_stop_date");

 $.ajax({
    type:"POST",
    url:"{% url 'postAccount' %}",
    data:{
      csrfmiddlewaretoken: document.querySelector('input[name="csrfmiddlewaretoken"]').Val(),
      name:name, type:type, start_date:start_date, stop_date: stop_date
    },
    contentType:"application/json; charset=utf-8",
    dataType:"json",
    success: function (response){
      var response = JSON.parse(response ['instance']),
      console.log(response);
    }
  });
e.preventDefault();
});

views.py

python 
def postAccount(request):
 if is_ajax(request) and request.method == 'POST':
  form = AccountForm (request.POST)
  if form.is_valid():
   instance = form.save()
   ser_instance = serializers.serialize('json', [ser_instance,])
   return JsonResponse({"instance":ser_instance}, status=200)
 return JsonResponse ({"error":""}, status=400)

Отключенные входы не будут отображаться в request.POST - вам может повезти больше, если вместо этого вы будете использовать атрибут readOnly, он будет делать практически то же самое, но будет включать значение в request.POST

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