55from django .contrib import messages
66from django .contrib .auth .decorators import login_required
77from django .db .models import F
8- from django .http import HttpResponse , HttpResponseRedirect
8+ from django .http import Http404 , HttpResponse , HttpResponseRedirect
99from django .shortcuts import get_object_or_404 , redirect , render
1010from django .urls import reverse
1111from django .views .decorators .clickjacking import xframe_options_sameorigin
@@ -254,6 +254,10 @@ def document_vote(request, pk):
254254def document_original_file (request , pk ):
255255 document = get_object_or_404 (Document , pk = pk )
256256
257+ # Check if original file exists
258+ if not document .original or not document .original .name :
259+ raise Http404 ("Le fichier original n'existe pas pour ce document" )
260+
257261 body = document .original .read ()
258262
259263 response = HttpResponse (body , content_type = "application/octet-stream" )
@@ -274,6 +278,11 @@ def document_original_file(request, pk):
274278@login_required
275279def document_pdf_file (request , pk ):
276280 document = get_object_or_404 (Document , pk = pk )
281+
282+ # Check if PDF file exists
283+ if not document .pdf or not document .pdf .name :
284+ raise Http404 ("Le fichier PDF n'existe pas pour ce document" )
285+
277286 body = document .pdf .read ()
278287
279288 response = HttpResponse (body , content_type = "application/pdf" )
0 commit comments