Conflict with an app name of 'auth' even when not using Django auth
|Reported by:||mattrobenolt||Owned by:||mattrobenolt|
|Cc:||mattrobenolt||Triage Stage:||Design decision needed|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||yes||Patch needs improvement:||yes|
When starting a project from scratch and I remove all of the default apps out of INSTALLED_APPS, and create an app of my own called "auth", Django traverses through and registers the django.contrib.auth models automatically.
I found the source of the problem with django.core.management.validators. At the point of including any part of this module, django.contrib.auth is added into the app_store cache in django.db.models.loading. Once it has been cached in the app_store, it overrides MY 'auth' app because cache keys are stored by doing: "app.name.split('.')[-2]".
After digging through and tracing up, I found that I could simply comment out line 3 of django/core/management/validators.py and it prevents the extra models from ever being initialized unless specifically declared in settings.py
This may or may not be the best solution for the problem, but I have patched this in on a few projects of mine without any negative consequences. I can't determine if there's a better way to actually test it.
Change History (6)
Changed 5 years ago by mattrobenolt
comment:1 Changed 5 years ago by mattrobenolt
- Cc mattrobenolt added
- Needs documentation unset
- Needs tests set
- Patch needs improvement unset
comment:2 Changed 5 years ago by mattrobenolt
- Component changed from contrib.auth to Core (Other)
- Has patch unset
- Patch needs improvement set
comment:3 Changed 5 years ago by julien
- Triage Stage changed from Unreviewed to Design decision needed