Django : метод get_context_data из classview не работает
Я хочу сделать приложение, которое загружает файлы в azure blobstorage, с частью, посвященной истории всех загруженных файлов.
Я использовал метод post и get классаview FormView и он отлично работает для загрузки файлов.
Теперь я должен запросить базу данных/модель, чтобы получить историю для ее отображения. Поэтому я думаю, что лучшим решением будет использование метода get_context_data для передачи данных в шаблон. Однако это не работает, данные не передаются, и я не могу определить цель проблемы.
Ниже приведен мой вид класса и мой html.
Views.py
class DocumentUpload(FormView) :
model = TblDocument
template_name = 'documents/documents.html'
form_class = FilesForm
context_object_name = 'object_list'
def get_context_data(self, *args, **kwargs):
# Call the base implementation first to get a context
context = super(DocumentUpload, self).get_context_data(*args, **kwargs)
context['object_list'] = TblDocument.objects.all()
return context
def get(self, request, *args, **kwargs):
form = self.form_class()
return render(request, self.template_name, {'form': form})
def post(self, request, *args, **kwargs):
form = self.form_class(request.POST, request.FILES)
files_selected = request.FILES.getlist('Filename') # create a list of files
if form.is_valid():
for file in files_selected :
# DEFINE THE DATA OF THE FILE
file = FileDefinitionBeforeUpload(file=file).file_information()
# GET THE CONTENT OF THE FILE
content = file.read()
file_io = BytesIO(content)
# THE UPLOAD TO THE BLOB
AzureBlobFile = AzureBlob(filename= file.name)
blob_client = AzureBlobFile.blob_client()
blob_client.upload_blob(data=file_io)
user = self.request.session.get('user')
newfile = TblDocument( User = user.get('email'),
Filename = file.name,
Filenamebeforeindex = file.previous_name,
Sizefile = file.size,
Format = file.extension,
# ID_Customer = id_contrat,
Url = blob_client.url)
newfile.save()
else :
form = FilesForm()
return render(request, self.template_name, {'form': form})
html
<div class="upload-app">
<div class="upload-in">
<h2>Upload</h2>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" id="submitupload">Upload</button>
</form>
<div class="fileselect">
<p>Selected files :</p>
<div id="fileselect"></div>
</div>
</div>
<div class="listfiles">
<h2>Files Uploaded</h2>
<table id="customers">
<tr>
<th>Filename</th>
<th>Date</th>
<th>Size</th>
</tr>
{% for file in object_list %}
<tr>
<td>{{ file.Filenamebeforeindex }}</td>
<td>{{ file.Timestamp | date:'d.m.Y H:i'}}</td>
<td>{{ file.Sizefile | filesizeformat}}</td>
</tr>
{% endfor %}
</table>
</div>