Django bootstrap: Файл не отправляется вместе с почтой при использовании модальной формы
В моем Django App есть страница, на которой пользователи могут загружать файлы со своей локальной машины (и делать другие вещи).
Я построил поток таким образом, что пользователи нажимают на "+", появляется модальная форма, пользователи находят файл на своей локальной машине, выбирают его, и когда они нажимают сохранить, я отправляю форму.
Однако, по какой-то причине файл не публикуется, а кажется, что я публикую только имя файла. Но я не могу понять почему.
file page
...
<div class="list-files__btn-plus-wrp">
<a class="list-files__btn-plus" href="#" data-bs-toggle="modal" data-bs-target="#modal">
<img src="{% static 'action/img/project/files/icon_plus-file.svg' %}" alt="+">
</a>
</div>
{% include 'action/forms/modals/modal.html' %}
modal.html
view
class ProjectFiles(MyLoginRequiredMixin, TemplateView):
template_name = 'action/project/file.html'
def post(self, request, *args, **kwargs):
instance = get_object_or_404(JobProject, id=kwargs['project_id'])
if request.POST.get('userfile[]'):
file = request.FILES['userfile[]']
#Actually, the whole request.FILES is empty
В вашей форме добавьте enctype для работы с файлами
<form action="{% url 'action:project_files' project_id=project.id %}" method="POST" class="pop-up-form__form" enctype="multipart/form-data">
{% csrf_token %}
....