Django --- как получить модель pdf заранее в кнопке загрузки html?
Я хочу создать HTML-кнопку, которая загружает pdf-файл из базы данных. Знаете ли вы, как создать кнопку для загрузки последнего pdf-файла из модели?
Ниже приведен мой код, полученный на данный момент из модели:
class PdfLoad(models.Model):
file = models.FileField(upload_to='Portfolios/')
Код для admin.py:
admin.site.register(PdfLoad)
Код HTML:
<!-- Download link -->
<section class="about section" id="CV">
<h2 class="section-title">Curriculum Vitae</h2>
<div class="d-flex justify-content-center">
<a href ="{{pdf.file}}"><button type="submit" class="cv__button" onclick="blank">CV</button></a>
</div>
</section>
нужно ли мне что-то делать для файла setting.py ??
У файла должен быть атрибут url. Это должно позволить вам получить к нему доступ:
<!-- Download link -->
<section class="about section" id="CV">
<h2 class="section-title">Curriculum Vitae</h2>
<div class="d-flex justify-content-center">
<a href ="{{ pdf.file.url }}"><button type="submit" class="cv__button" onclick="blank">CV</button></a>
</div>
</section>
Да, вам нужно добавить информацию в файл settings.py:
# settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
Вы можете изменить media
на путь к папке, в которой хранятся ваши pdf файлы, я думаю, что в вашем случае это будет Portfolios
. И я думаюзагрузка в должна быть file = models.FileField(upload_to='/Portfolios')
.
Затем добавьте следующую строку в context_processors:
settings.py
TEMPLATES = [
{
...
'OPTIONS': {
'context_processors': [
...
'django.template.context_processors.media', # ADD THIS LINE
],
},
},
]
Измените носитель на путь к папке, в которой хранятся ваши pdf-файлы.