У меня есть список файлов, каждый со своим флажком. Затем я получаю список всех элементов, где отмечен флажок. Я хотел бы, чтобы эти файлы были переданы в мое представление и были автоматически присоединены.
Вот представление, которое показывает список файлов:
def DocListView(request, pk):
if request.method == "POST":
documents = request.POST.getlist('checks')
else:
return render(request, 'doc_list.html', context)
doc_list. html
<div>
<ul class="list-group">
{% for item in PackingListDocs %}
<li class="list-group-item">
<a href="{% url 'EditPackingListView' item.Packing_List.pk %}" class="a" type="button">
<div class="md-v-line"></div><input type="checkbox" name="checks" value="{{ item.PackingListDocument.url|default_if_none:'#' }}">{{item.Packing_List.Name}}<a class="doclink" href="{{ item.PackingListDocument.url|default_if_none:'#' }}" download>View Doc</a>
</a>
</li>
{% endfor %}
</ul>
</div>
Итак, как вы можете видеть, я получаю список `` `documents = request.POST.getlist ('check'). Теперь мой следующий вид в настоящее время выглядит следующим образом.
def email(request):
if request.method == "POST":
form = EmailForm(request.POST,request.FILES)
if form.is_valid():
post = form.save(commit=False)
# post.published_date = timezone.now()
post.save()
email = request.POST.get('email')
subject = request.POST.get('subject')
message = request.POST.get('message')
document = request.FILES.get('document')
email_from = settings.EMAIL_HOST_USER
recipient_list = [email]
email = EmailMessage(subject,message,email_from,recipient_list)
base_dir = 'media'
email.attach_file('Poseidon/media/media/'+str(document))
email.send()
return redirect('HomeView')
else:
form = EmailForm()
return render(request, 'docemail.html', {'form': form})
Он работает нормально, но он заставляет пользователя выбирать файл для загрузки, и я могу загрузить только один файл на электронную почту ... так как я могу изменить это? просмотреть, чтобы получить каждый элемент в моем списке documents
и прикрепить его к моей электронной почте?