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, и я буду очень рад найти решение!

любая помощь приветствуется!

Вернуться на верх