diff --git a/contracts/views.py b/contracts/views.py
index c2b4915607a99dc6a8d22195767536125c611a86..2c57b6f0c755bd3cd8bced2a88de7641c2ee3b6e 100644
--- a/contracts/views.py
+++ b/contracts/views.py
@@ -4,7 +4,7 @@ import requests
 from django.conf import settings
 from django.core.paginator import Paginator
 from django.http import HttpResponse
-from django.shortcuts import render
+from django.shortcuts import get_object_or_404, render
 from django_downloadview import ObjectDownloadView
 from django_http_exceptions import HTTPExceptions
 from guardian.shortcuts import get_objects_for_user
@@ -89,10 +89,12 @@ def view_contract(request, id: int):
     if not request.user.has_perm("contracts.view_confidential"):
         filter["is_public"] = True
 
-    contract = (
-        get_objects_for_user(request.user, "contracts.view_contract")
-        .filter(**filter)
-        .get(id=id)
+    contract = get_object_or_404(
+        (
+            get_objects_for_user(request.user, "contracts.view_contract")
+            .filter(**filter)
+        ),
+        id=id
     )
 
     return render(
@@ -111,9 +113,10 @@ def view_contract(request, id: int):
 
 
 def view_contract_filing_area(request, id: int):
-    filing_area = get_objects_for_user(
-        request.user, "contracts.view_contractfilingarea"
-    ).get(id=id)
+    filing_area = get_object_or_404(
+        get_objects_for_user(request.user, "contracts.view_contractfilingarea"),
+        id=id
+    )
 
     contracts_page, contracts_paginator = get_paginated_contracts(
         request, {"filing_area": filing_area}
@@ -137,7 +140,8 @@ def view_contract_filing_area(request, id: int):
 
 
 def view_contract_issue(request, id: int):
-    issue = get_objects_for_user(request.user, "contracts.view_contractissue").get(
+    issue = get_object_or_404(
+        get_objects_for_user(request.user, "contracts.view_contractissue"),
         id=id
     )
 
@@ -160,7 +164,10 @@ def view_contract_issue(request, id: int):
 
 
 def view_contract_type(request, id: int):
-    type_ = get_objects_for_user(request.user, "contracts.view_contracttype").get(id=id)
+    type_ = get_object_or_404(
+        get_objects_for_user(request.user, "contracts.view_contracttype"),
+        id=id
+    )
 
     contracts_page, contracts_paginator = get_paginated_contracts(
         request, {"types": type_}
@@ -181,7 +188,8 @@ def view_contract_type(request, id: int):
 
 
 def view_contractee(request, id: int):
-    contractee = get_objects_for_user(request.user, "contracts.view_contractee").get(
+    contractee = get_object_or_404(
+        get_objects_for_user(request.user, "contracts.view_contractee"),
         id=id
     )
 
@@ -204,7 +212,10 @@ def view_contractee(request, id: int):
 
 
 def view_signee(request, id: int):
-    signee = get_objects_for_user(request.user, "contracts.view_signee").get(id=id)
+    signee = get_object_or_404(
+        get_objects_for_user(request.user, "contracts.view_signee"),
+        id=id
+    )
 
     contracts_page, contracts_paginator = get_paginated_contracts(
         request, {"signee_signatures__signee": signee}