From d3d173425fc0a1107836da5b4567f1c88253191b Mon Sep 17 00:00:00 2001
From: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Date: Fri, 26 May 2023 12:16:26 +0200
Subject: [PATCH] Optimized @condition decorator a bit.

This removes unnecessary get_last_modified() hook.
---
 django/views/decorators/http.py | 16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/django/views/decorators/http.py b/django/views/decorators/http.py
index 6d88a633eb..4ad520fb25 100644
--- a/django/views/decorators/http.py
+++ b/django/views/decorators/http.py
@@ -86,19 +86,15 @@ def condition(etag_func=None, last_modified_func=None):
         @wraps(func)
         def inner(request, *args, **kwargs):
             # Compute values (if any) for the requested resource.
-            def get_last_modified():
-                if last_modified_func:
-                    dt = last_modified_func(request, *args, **kwargs)
-                    if dt:
-                        if not timezone.is_aware(dt):
-                            dt = timezone.make_aware(dt, datetime.timezone.utc)
-                        return int(dt.timestamp())
-
+            res_last_modified = None
+            if last_modified_func:
+                if dt := last_modified_func(request, *args, **kwargs):
+                    if not timezone.is_aware(dt):
+                        dt = timezone.make_aware(dt, datetime.timezone.utc)
+                    res_last_modified = int(dt.timestamp())
             # The value from etag_func() could be quoted or unquoted.
             res_etag = etag_func(request, *args, **kwargs) if etag_func else None
             res_etag = quote_etag(res_etag) if res_etag is not None else None
-            res_last_modified = get_last_modified()
-
             response = get_conditional_response(
                 request,
                 etag=res_etag,