Различие между несколькими кнопками отправки на одной странице - PullRequest
0 голосов
/ 10 июля 2020

Я печатаю несколько кнопок загрузки файлов на страницу, по одной на каждую итерацию через мой l oop.

{% for unit in user.units.all %}
{% if unit.number|add:0 == iteration|add:1 %}

<button type="button" class="btn btn-primary js-upload-photos">
<span class="glyphicon glyphicon-cloud-upload"></span> Upload Files</button>

<input id="fileupload" type="file" name="user_file" multiple data-url="{% url 'user-file-upload' %}"
data-form-data='{"csrfmiddlewaretoken": "{{ csrf_token }}", "unit_id":"{{ unit.id }}"}'>
$(function () {
    $(".js-upload-photos").click(function () {
        $("#fileupload").click();
    });

    $("#fileupload").fileupload({
        dataType: 'json',
        done: function (e, data) {
            if (data.result.is_valid) {
                $("#gallery tbody").prepend("<tr><td><a href='" + data.result.url + "'>" + data.result.name + "</a></td></tr>")
            }
        }
    });
});

Поскольку каждый fileUpload соответствует другому unit, я передаю unit_id переменная в javascript нажатием кнопки. Эта переменная должна быть сохранена в БД вместе с файлом.

Если я проверяю страницу, каждый fileUpload имеет уникальный unit_id, но не имеет значения, на какой из кнопок UPLOAD FILES из fileUploads я нажимаю on, id, сохраненный в БД, всегда предназначен для первого unit.

Я подозреваю, что это потому, что каждый fileUploads имеет тот же id, но я не уверен, как изменить это, не нарушая моего код.

Я подумал, может быть, я смогу изменить id в моем шаблоне на class и два #fileupload в моем javascript на .fileupload, а затем присвоить каждому уникальный id , но когда я сделаю это, а затем нажмите кнопку ЗАГРУЗИТЬ ФАЙЛ, окно выбора файла открывается несколько раз.

Я также пробовал окружать каждый тег тегами <form>.

Спасибо.

...