Kanzas
@Kanzas
Web Разработка

Django как в форму обратной связи прикрепить отправку файлов?

Ребят подскажите есть форма 5c81e4504edb438283f3b23abbe6376a.png
Как можно реализовать в ней возможность прикреплении файлов (Изображений)
  • Вопрос задан
  • 680 просмотров
Пригласить эксперта
Ответы на вопрос 2
Привет:

1) Добавляешь в модель поле хранения изображения, например ImageField:

avatar = models.ImageField(upload_to='', blank=True, null=True, help_text="Идеальный размер 150 на 150 пикселей",)


2) Если формы автоматически создаются из модели, то это поле уже появилось, если формы руками собираешь, то получаешь что-то по типу в файле forms.py:

class Profile_Form(forms.Form):
    avatar = forms.ImageField(label='Загрузить Аватар', required=False)
    myself = forms.CharField(....)
    myoffer = forms.CharField(...)


3) Прописываешь в settings.py локацию хранения файла, например:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'


4) Добавляешь в саму html-форму обозначение, что ты с неё можешь брать мультимедиа-файлы:

<form action="/update_profile{{ useritem.id }}" method="post" enctype="multipart/form-data">


5) Добавляешь граб изображения в обработчеке формы.

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

Но вообще лучше документацию джанги поднять, там есть свои нюансы.
Ответ написан
Комментировать
Kanzas
@Kanzas Автор вопроса
Web Разработка
Спасибо
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы