When would you need to use the reverse_lazy utility function instead of reverse?
when you want to provide a reverse URL as the url attribute of a class-based generic view
all of the these answers
when you want to provide a reverse URL as a default value for a parameter in a function's signature
when you want to provide a URL to a decorator, such as the login_url argument for the permission_required() decorator