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-файлы.

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