reverse(...) is better than using
reverse_lazy(...) when the url is being reversed after
URLConf has been loaded.
Django looks up the URL name as defined in
URLConf to generate the URL. There are times when we want to use a URL before the
URLConf has been loaded, such as:
URLConf has been loaded there is no need to use
reverse_lazy(...) - just use
reverse(...), becasue doing otherwise adds unecessary complexity.
So in practice, do this
from django.urls import reverse def my_view(request): url = reverse('foo') ...
Instead of this
from django.urls import reverse_lazy def my_view(request): url = reverse_lazy('foo') ...
pip install django-doctor.
Django Doctor will run this check by default. No configuration is needed but the check can be turned on/off using check code
reverse-lazy-misuse in your pyproject.toml file.