Django загружает файл, отфильтрованный из списка файлов
Я работаю над сайтом, где у меня есть несколько файлов excel, загруженных пользователями и сохраненных в DB, затем пользователь выбирает имя и дату файла из выпадающего списка и этот конкретный файл должен быть загружен к нему. прямо сейчас я могу получить объект File, который он запросил, но не могу загрузить его правильно.
Это мой Models.py
class File(models.Model):
file_name = models.TextField(max_length=1000, default='myFile')
created_at = models.DateTimeField(
default=datetime.datetime.now().replace(microsecond=0))
file = models.FileField()
file_class = models.CharField(
max_length=20, default='')
def __str__(self):
return self.file_name
Это та часть, где я сохраняю файл в Views.py:
modelFile = File()
now = datetime.datetime.now().replace(microsecond=0)
file_class = request.POST['select_course']
Fname = request.POST['file_name']
myFile = convertToBinaryData(uploaded_fileName)
xlfile = ContentFile(myFile)
modelFile.file.save(Fname, xlfile)
modelFile.file_class = file_class
modelFile.created_at = now
modelFile.file_name = Fname
modelFile.save()
А вот где я получаю и загружаю файл в Views.py :
def viewTrial(request):
if request.method == "POST":
chosen_filename = request.POST['select_trial']
chosen_date = request.POST['select_trial2']
date = pd.to_datetime(
chosen_date, infer_datetime_format=True).strftime('%Y-%m-%d %H:%M')
FileToView = File.objects.filter(created_at__contains=date).filter(
file_name__contains=chosen_filename)
response = HttpResponse(content_type='application/ms-excel')
response['Content-Disposition'] = 'attachment; filename=%s' % chosen_filename+".xls"
return response
else:
return render(request, "model/trials.html", {})
этот код загружает файл excel только с именем файла, я видел несколько вопросов здесь относительно этой проблемы и загрузки, и ни один не сработал для меня.
если я изменю FileToView так:
FileToView = File.objects.filter(created_at__contains=date).filter(
file_name__contains=chosen_filename).values('file')
тогда в файле excel есть Queryset, записанный следующим образом:
{'file': 'myTest'}
где 'myTest' - имя файла.
у меня другая проблема, мне нужно скачать файл, который я отфильтровал из списка файлов, я пытаюсь уже неделю, так как я новичок в django, и я буду очень рад найти решение!
любая помощь приветствуется!