Создаю сайт для сдачи индивидуального проекта на django, на сайте поменял таблицу users и теперь туда можно добавить фото профиля, создал вкладку на сайте для редактирования и добавления фото после регистрации, input файл хотел стилизовать, чтоб не морочиться взял с инета стили и скрипт
само поле
<div class="field__wrapper">
{{ form.image }}
<label class="field__file-wrapper" for="{{ form.image.id_for_label }}">
<div class="field__file-fake" style="margin-bottom: 40px;">Файл не выбран</div>
<div class="field__file-button">Выбрать</div>
</label>
</div>
<script>
let fields = document.querySelectorAll('.field__file');
Array.prototype.forEach.call(fields, function (input) {
let label = input.nextElementSibling,
labelVal = label.querySelector('.field__file-fake').innerText;
input.addEventListener('change', function (e) {
let countFiles = '';
if (this.files && this.files.length >= 1)
countFiles = this.files.length;
if (countFiles)
label.querySelector('.field__file-fake').innerText = 'Выбрано файлов: ' + countFiles;
else
label.querySelector('.field__file-fake').innerText = labelVal;
});
});
</script>
Скрипт
image = forms.ImageField(widget=forms.FileInput(attrs={
'class': 'reg-content-input',
'placeholder': 'Имя',
'style': 'margin-bottom: 40px;',
'multiple': True,
'id': 'label',
'name': 'file'
}))
это форма для этого инпута в django