Exercise 3: What Could Go Wrong With datetime.now() — Possible Solution ==================================================================== WHAT WOULD ACTUALLY HAPPEN ------------------------------ With USE_TZ=True, Django stores and works with timezone-aware datetimes throughout the project. datetime.now() produces a naive datetime - one with no timezone information attached at all - rather than a timezone-aware one. Comparing or combining a naive value with timezone-aware values doesn't necessarily raise an immediate, obvious error; depending on how it's used, it can instead silently produce an incorrect result, since Python and Django have to make an implicit assumption about what timezone that naive value was actually meant to represent. WHY THIS MATTERS CONCRETELY FOR THIS DASHBOARD ------------------------------ If the server the app runs on and the users viewing the dashboard are in different timezones, a naive "now" computed on the server could be treated as if it were in a timezone it wasn't actually in, shifting the "3 days from now" threshold calculation by however many hours separate the assumed timezone from the correct one. An item that's genuinely about to expire could be silently miscategorized as further away (or already expired) than it really is from a given user's own local perspective, without any error ever being raised to reveal the mistake. WHY THIS WORKS AS AN ANSWER ------------------------------ It correctly explains that datetime.now() produces a naive datetime that doesn't fail loudly when mixed with timezone-aware values but can silently produce an incorrect comparison, and gives a concrete, realistic scenario (server and users in different timezones) showing how this could shift the expiry threshold calculation without any visible error.