diff --git a/django/views/decorators/http.py b/django/views/decorators/http.py index 6d88a633eb1..4ad520fb257 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,