I frequently use the built-in Django Console in PyCharm to test Django ORM queries and other bits of code. It is much nicer than running the Django shell from the terminal, as you get syntax highlighting, code completion and more.

You can customize this console to automatically import all Django models to save you some repetitive typing, similar to the shell_plus management command from the django-extensions package.

In PyCharm, open the Settings/Preferences dialog and select Build, Execution, Deployment | Console | Django Console. By default, the Starting script already contains a few lines of Python code to setup the Django shell:

PyCharm Preferences dialog

To simply load all models from every app in INSTALLED_APPS, including models from Django and third-party packages, add the following lines to the Starting script:

from django.apps import apps
for model_cls in apps.get_models():
    locals()[model_cls.__name__] = model_cls

If you only want to load models from your own apps, you can add something like this:

from django.apps import apps
for app_config in apps.get_app_configs():
    # Assumes that your apps are namespaced with your project name,
    # e.g. `your_project.blog` and `your_project.polls`.
    # Alternatively, you could filter the app name by a list of strings.
    if app_config.name.startswith('your_project.'):
        for model_cls in app_config.get_models():
            # If you have models with the same name,
            # you need to add some logic to resolve the name collision.
            if model_cls.__name__ not in locals():
                locals()[model_cls.__name__] = model_cls

You can also import other objects that you regularly use. For example, I have added from datetime import date, datetime, timedelta to the Starting script as well.