Django - добавление ссылки на скачивание на основе назначения upload_folder

Я задал место хранения файла на основе введенных данных. Может ли кто-нибудь помочь мне с установкой ссылки для скачивания? Как мне включить это в корень медиа

models.py

class lMetadataform(models.Model):

  def upload_folder(self, filename):
    return f'LectureMaterial/{self.mtype}/{filename}'

  #fields
  id = models.AutoField(primary_key=True)
  mtype= models.CharField(max_length=2000, blank=True)
  document = models.FileField(upload_to=upload_folder, verbose_name="data", validators=[validate_file_extension], unique=True)  

page.html

   <td><a href="../ldownload/{{ b.document }}"> Dataset</a></td>

views.py

def ldownload(request,id):
    with connection.cursor() as cursor:
           
            query = ''
            query += str(id)
            #print(query)
            cursor.execute(query)
            row = cursor.fetchone()
    if row:
            print(row[0])

            fullname = settings.MEDIA_ROOT + row[0]
            filename = os.path.basename(fullname)

            print('FILE: ',fullname)
            print('NAME: ',filename)

            fsock = open(fullname, 'rb')
            if fsock.closed:
                    print("File closed")
            response = HttpResponse(fsock, content_type='application/gzip')
            response['Content-Disposition'] = "attachment; filename=%s" % \
                                             (filename)
            return response
    else:
            print("File does not exist")
           
            return render(request, 'home.html')

urls.py

path('ldownload/<id>', views.ldownload, name='ldownload'),
Вернуться на верх