Using from django.conf import settings
simplifies the code and makes it more maintainable.
It's preferable to use from django.conf import settings
instead of importing the settings file directly.
Importing directly can trigger a race condition when your code imports settings before the app is ready.
Overriding settings in tests is simplified when using django.conf.settings
as you can then use Django's modify_settings
and django-pytest's settings
fixture, which rely on the code using django.conf.settings
.
So in practice, do this
from django.conf import settings
Instead of this
from example.config import settings
Django Doctor will run this check by default. No configuration is needed but the check can be turned on/off using check code direct-import-settings
in your pyproject.toml file.