Я печатаю несколько кнопок загрузки файлов на страницу, по одной на каждую итерацию через мой 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>
.
Спасибо.