import pytz def user_timezone_converter(queryset, datetime_fields, user_timezone): # Create a timezone object for the user's timezone user_tz = pytz.timezone(user_timezone) # Check if queryset is a dictionary (single item) or a list of dictionaries if isinstance(queryset, dict): queryset_values = [queryset] else: queryset_values = list(queryset) # Iterate over the dictionaries in the list for item in queryset_values: # Iterate over the datetime fields for field in datetime_fields: # Convert the datetime field to the user's timezone if field in item and item[field]: item[field] = item[field].astimezone(user_tz) # If queryset was a single item, return a single item if isinstance(queryset, dict): return queryset_values[0] else: return queryset_values