Ввод формы Не отображается в запросе.Публикация

#javascript #html #django #dropzone.js #dropzone

Вопрос:

Я пытаюсь создать форму, в которой я использую Dropzone, но мне нужно добавить еще один ввод. Проблема в том, что с сервера, когда я пытаюсь получить доступ к другому входу, сервер не может его найти.

Это html-код, который у меня есть.

 {% load static %}

{% block content %}


<div class="pt-3 pb-2 mb-3 border-bottom">

        <form action="#" method="POST" class="dropzone dz" id="dropzone" name="dropzone" >
            {% csrf_token %}
                <div class="fallback" >
                    <input name="file" type="file" multiple />
                    <input type='text' name='fullname' value='what ever you need to get in backend'>
                </div>
        </form>


        <button type="button" class="btn btn-outline-success" id='uploadfiles' value='Submit' >Submit</button>
            <span data-feather="save"></span>
            Submit
        </button>-->

</div>


<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/bs4/jq-3.3.1/jszip-2.5.0/dt-1.10.20/b-1.6.1/b-html5-1.6.1/b-print-1.6.1/datatables.min.css"/>

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/pdfmake.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.36/vfs_fonts.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/v/bs4/jq-3.3.1/jszip-2.5.0/dt-1.10.20/b-1.6.1/b-html5-1.6.1/b-print-1.6.1/datatables.min.js"></script>

<script type = "text/javascript">

    $('#dropzone').submit(function() {
      console.log('Hello');
    });



    Dropzone.options.dropzone =
             {
                autoProcessQueue: false,
                maxFiles: 1,
                acceptedFiles: ".xlsx",
                addRemoveLinks: true,

                  init: function() {
                    var submitButton = document.querySelector("#uploadfiles")
                        myDropzone = this; // closure

                    submitButton.addEventListener("click", function() {
                      var a = document.getElementById('pymt_date').value
                      var CurrentDate = new Date();
                      GivenDate = new Date(a);
                      if (a == null || a == ""){
                        alert("Please Enter Payment Date");
                        return false;
                      }
                      else if (GivenDate < CurrentDate) {
                        alert("Payment Date Must be greater than today");
                        return false;
                      }
                      else {
                          console.log(document.getElementById('pymt_date').value);
                          myDropzone.processQueue();
                          setTimeout(function() {
                                location.reload();
                            }, 5000);
                          }
                       // Tell Dropzone to process all queued files.
                    });
                  }
            };

</script>
 

Не могли бы вы, пожалуйста, помочь и посоветовать, в чем проблема. Когда я пытаюсь распечатать запрос.ОПУБЛИКУЙТЕ, чтобы получить значение входного имени=»полное имя», все, что я получаю, — это токен csrf, и все.

Комментарии:

1. <form enctype="multipart/form-data" ...> .

2. Файлы , кстати, доступны через request.FILES , нет request.POST .

3. @WillemVanOnsem Я не имею в виду файл. Файл, который я подтверждаю, что у меня есть к нему доступ. Мне нужно получить значение входного имени = полное имя. Что я не могу получить к нему доступ по запросу. Публикация

4. Я не вижу идентификатора dateform , прикрепленного к форме, которая содержит <input> тег для полного имени. Может быть, обновите ссылку и проверьте.

5. @SaranshSingh идентификатор и имя формы-dropzone .. форма данных-это не та форма.. проблема в том, что мне нужно обработать файл и ввести полное имя в одном запросе ..

Ответ №1:

во-первых, ваша кнопка «Отправить» отсутствует в форме. Imo должен быть внутри, и тип кнопки должен быть «отправить», а не «кнопка». Другое дело, что неясно, где вы хотите получить доступ к request.POST. В представлении Джанго? Итак, в форме сделайте: enctype=»составные/данные формы», как сказал Виллем Ван Онсем. И еще раз поместите кнопку «Отправить» внутри формы. Таким образом, вы сможете обработать запрос на публикацию в представлении. И просмотрите свой код, у вас есть несколько ошибок — дважды закрываете , отправляете и т. Д.