Exercise 2: auto_now_add vs. auto_now — Possible Solution ==================================================================== THE DIFFERENCE ------------------------------ auto_now_add=True sets a DateTimeField's value exactly once, at the moment the row is first created, using the server's own clock, and makes the field non-editable through ordinary forms afterward. auto_now, despite the similar name, updates the field's value every single time the row is saved, not just at creation - meaning it would keep changing on every subsequent update to that row. WHY added_at NEEDS auto_now_add SPECIFICALLY ------------------------------ added_at is meant to record the one moment an item was originally added to the pantry - a fact that should never change again after that initial creation, no matter how many times the item is later edited (for example, when it's marked used). auto_now_add captures exactly that: a value set once, at creation, and then left alone. auto_now would be the wrong choice here, since it would silently overwrite added_at with the current time every time the row is saved for any other reason, destroying the original creation timestamp. WHY THIS WORKS AS AN ANSWER ------------------------------ It correctly explains that auto_now_add sets a value once at creation while auto_now updates on every save, and correctly identifies that added_at specifically needs a value that never changes after creation, which is exactly what auto_now_add (and only auto_now_add) provides.