I am at my wits end with this issue, and would love some help resolving this.

I have a Django project with a bunch of sub apps as such:

```
my_project/
    manage.py
    my_project/
        settings.py
        urls.py
        wsgi.py
    app_root/
        __init__.py
        app1/
            __init__.py
            models.py
            views.py
            urls.py
            templates/
                [various templates].html
        app2/
            __init__.py
            models.py
            [etc]
        app3/
            [etc]

```

in my django settings.py i have installed apps as such:

```
app_root.app1,
app_root.app2,

```

In PyCharm, I've tried various things but essentially have Content Root as the top "my\_project/" and app\_root, app1, app2, etc as Source Roots. I've tried just having `app_root` as the only Source Root, and I've tried having only `app1`, `app2`, etc only as Source Roots, but nothing makes any difference.

Everything functions fine. app runs and everything. However, PyCharm has an inability to resolve my apps.

However, if i try this:

```
import app_root
...
def some_function(self):
    app_root.app1.models.My_Model.objects.all()

```

it will highlight app1 with the error `"Cannot find reference 'app1' in '__init__.py'"`
This also means it can't do autocomplete anywhere in the path while doing `app_root.app1.` - it has no idea about models, views, etc. despite having an (empty) `__init__.py` in every directory.

I also cannot use any refactoring because it always says "Function is not under the source root"

I've spent countless hours trying to get PyCharm to behave but simply cannot find a way to do it. Is there any way this can be done so PyCharm will autocomplete my apps and not keep giving inspection warnings?