Search code examples
pythondjango

Django Installed Apps Location


I am an experienced PHP programmer using Django for the first time, and I think it is incredible!

I have a project that has a lot of apps, so I wanted to group them in an apps folder.

So the structure of the project is:

/project/
/project/apps/
/project/apps/app1/
/project/apps/app2

Then in Django settings I have put this:

INSTALLED_APPS = (
    'project.apps.app1',
    'project.apps.app2',
)

This does not seem to work?

Any ideas on how you can put all your apps into a seprate folder and not in the project root?

Many thanks.


Solution

  • Make sure that the __init__.py file is in your apps directory, if it's not there it won't be recognized as part of the package.

    So each of the folders here should have __init__.py file in it. (empty is fine).

    /project/
    /project/apps/
    /project/apps/app1/
    /project/apps/app2
    

    Then as long as your root 'module' folder is in your PYTHONPATH you'll be able to import from your apps.

    Here's the documentation regarding the python search path for your reading pleasure:

    http://docs.python.org/install/index.html#modifying-python-s-search-path

    And a nice simple explanation of what __init__.py file is for:

    What is __init__.py used for?