Seite 1 von 1
... und pdf anzeigen kann ich auch nicht
Verfasst: Samstag 16. März 2024, 18:21
von Pitwheazle
Die "handbuch.pdf" liegt auch in "staticfiles/medien". Folgendes habe ich probiert:
Code: Alles auswählen
def handbuch(req):
with open('medien/handbuch.pdf', 'rb') as pdf:
response = HttpResponse(pdf.read(), content_type='application/pdf')
response['Content-Disposition'] = 'inline; filename="handbuch.pdf"'
return response
(Den Code habe ich so im Internet gefunden und verwende ihn mal wieder ohne so recht zu wissen, was er macht.)
ergibt den Fehler
Code: Alles auswählen
[Errno 2] No such file or directory: 'medien/handbuch.pdf'
... wahrscheinlich ist nur der Pfad falsch? Wie man das jetzt im Template macht weiß ich (hoffentlich) - wie man das im code einträgt, weiß ich nicht.
Re: ... und pdf anzeigen kann ich auch nicht
Verfasst: Montag 19. August 2024, 07:15
von Sven_TKLOOP
Ich weiß nicht wie deine Ordnerstruktur aussieht, der Error sagt aber dass es deine Datei nicht gibt.
Du könntest zum Testen mal den absoluten Pfad nutzen, dann sollte zumindest dieser Fehler nicht mehr erscheinen.
Als einfache Lösung:
Code: Alles auswählen
def handbuch(req):
# Absoluten Pfad
file_path = '/voller/pfad/zu/deinem/projekt/staticfiles/medien/handbuch.pdf'
try:
with open(file_path, 'rb') as pdf:
response = HttpResponse(pdf.read(), content_type='application/pdf')
response['Content-Disposition'] = 'inline; filename="handbuch.pdf"'
return response
except FileNotFoundError:
return HttpResponse("Die Datei wurde nicht gefunden.", status=404)
Re: ... und pdf anzeigen kann ich auch nicht
Verfasst: Montag 19. August 2024, 16:38
von noisefloor
Hallo,
ungetestet:
Code: Alles auswählen
from django.templatetags.static import static
...
path = static('medien/handbuch.pdf')
with open(path, 'rb') as pdf:
...
Gruß, noisefloor
Re: ... und pdf anzeigen kann ich auch nicht
Verfasst: Montag 19. August 2024, 18:17
von Pitwheazle
Hallo ihr Lieben,das ist sehr nett, dass ihr hier noch antwortet. Der Beitrag ist aber schon etwas älter. ich habe tatsächlich auch zwischenzeitlich dazugelernt (ein bisschen) - das funktioniert schon länger.
@ SvenTKLOOP hat wahrscheinlich recht und ich hatte den verkehrten Link. Das z.B geht einfach mit:
Code: Alles auswählen
<a href="{% static 'medien/lernbox.pdf' %}">Hier findet man das Handbuch für die Lernbox und für Bingo.</a>