Как объединить две формы с одной формой отправки?
У меня есть две формы и одна кнопка отправки. Но содержимое отображается только в одном текстовом поле. И если я пытаюсь загрузить файл с помощью второй формы. Нет никакого вывода.
SO У меня шаблон выглядит так:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Create a Profile</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="{% static 'main/css/custom-style.css' %}" />
<link rel="stylesheet" type="text/css" href="{% static 'main/css/bootstrap.css' %}" />
</head>
<body>
<div class="container center">
<span class="form-inline" role="form">
<div class="inline-div">
<form class="form-inline" action="/controlepunt140" method="POST" enctype="multipart/form-data">
<div class="d-grid gap-3">
<div class="form-group">
{% csrf_token %}
{{ pdf_form }}
</div>
<div class="form-outline">
<div class="form-group">
<textarea class="inline-txtarea form-control" id="content" cols="70" rows="25">
{{content}}</textarea>
</div>
</div>
</div>
<div class="d-grid gap-3">
<div class="form-group">
{% csrf_token %}
{{ excel_form }}
</div>
<div class="form-outline">
<div class="form-group">
<textarea class="inline-txtarea form-control" id="content.excel" cols="70" rows="25">
{{content.excel}}
</textarea>
</div>
</div>
</div>
<button type="submit" name="form_pdf" class="btn btn-warning">Upload!</button>
</form>
</div>
</span>
</div>
</body>
</html>
и views.py:
lass ReadingFile(View):
def get(self, *args, **kwargs):
pdf_form = UploadFileForm()
excel_form = ExcelForm()
return render(self.request, "main/controle_punt140.html", {
'pdf_form': pdf_form, "excel_form": excel_form
})
def post(self, *args, **kwargs):
pdf_form = UploadFileForm(
self.request.POST, self.request.FILES)
excel_form = ExcelForm(
self.request.POST, self.request.FILES)
content = ''
content_excel = ''
if pdf_form.is_valid() and excel_form.is_valid() and 'upload_file' in self.request.FILES:
uploadfile = UploadFile(image=self.request.FILES["upload_file"])
excel_file = UploadFile(image=self.request.FILES["upload_file"])
uploadfile.save()
excel_file.save()
if uploadfile.image.path.endswith('.pdf'):
content = 'pdf1'
if uploadfile.image.path.endswith('.pdf'):
content_excel = 'pdf2'
return render(self.request, "main/controle_punt140.html", {
'pdf_form': pdf_form, 'excel_form': excel_form,
"content": content, 'content_excel': content_excel
})
return render(self.request, "main/controle_punt140.html", {
"pdf_form": UploadFileForm(), "excel_form": ExcelForm()
})
forms.py:
class UploadFileForm(forms.Form):
upload_file = forms.FileField(required=False)
class ExcelForm(forms.Form):
upload_excel = forms.FileField(required=False)
и модель:
class UploadFile(models.Model):
image = models.FileField(upload_to="images", blank=True)
Итак, содержимое загруженного файла возвращается в content. Но если я пытаюсь показать содержимое в {{content.excel}}, то ничего не возвращается - пусто.
Как я могу это улучшить?