My Django project has several apps, which all have no issue, with the exception of the app called platform. To import from this app, I need to use the full path, rather than being able to import it directly, for example:
from app.models import MyModel # Doesn't work for platform app, but it does for others
vs
from project_root.app.models import Mymodel # Have to do this only for platform app
I changed the name from platform to theplatform and it worked. Imports worked without full paths, the makemigrations starting finding the models. The only thing that changed was the name of the app.
Each of my apps have an apps.py, with a class inheriting from AppConfig with the name of the app, and all of them are in installed apps. I've also made sure adding/removing init.py doesn't mess with anything. I feel pretty certain the only variable here is the name of the app.
Are there reserved or illegal app names in Django? If there are is there a place I can read up on it if there are? The only restriction I'm aware of is not having dashes in the name.