Как изменить заголовок pdf с помощью django?
У меня есть приложение, которое позволяет загружать pdf-файлы, а затем просматривать их в браузере, и оно отлично работает, но единственная проблема в том, что мой заголовок почему-то представляет собой regex
urls.py
urlpatterns = [
path("show_file/r'^(?P<file_id>\d+)",v.show_file, name="show_file" ),
]
views.py
def show_file(response,file_id):
doc = Document.objects.get(id=file_id)
pdf = open(f"media/{doc.file}", 'rb')
return FileResponse(pdf, content_type='application/pdf')
models.py
class Document(models.Model):
title = models.CharField(max_length=65, null=False, blank=False)
subject = models.CharField(max_length=20)
grade = models.IntegerField()
file = models.FileField(upload_to="documents/")
date_uploaded = models.DateField(null=False)
forms.py
class DocumentsForm(forms.ModelForm):
subject = forms.ChoiceField(choices=subject_choices)
grade = forms.ChoiceField(choices=grade_choices)
class Meta:
model = Document
fields = ("title","subject","grade","file","date_uploaded")
Ваш браузер показывает последний сегмент URL в отсутствие какого-либо другого заголовка. Просто измените URL на
path("show_file/<file_id>", v.show_file, name="show_file"),
То, что вы имеете сейчас, похоже, является половинчатым переносом re_path на основе regexp в <> на paths.
Вы просто должны включить название файла в URL, как показано выше, но сначала передайте его из вашего шаблона.
urls.py
urlpatterns = [
path("show_file/<file_id>/<file_title>",v.show_file, name="show_file" ),
]
like:
<a href=
"{% url 'show_file' file_id=file.id file_title=file.title %}"
class="text-right">View</a>