Search code examples
pythondjangodjango-apps

How to keep all my django applications in specific folder


I have a Django project, let's say "project1". Typical folder structure for applications is:

/project1/
         /app1/
         /app2/
         ...
         __init__.py
         manage.py
         settings.py
         urls.py

What should I do if I want to hold all of my applications in some separate folder, 'apps' for example? So that structure should look like the following:

/project/
         apps/
              app1/
              app2/
              ...
         __init__.py
         manage.py
         settings.py
         urls.py

Solution

  • You can add your apps folder to your python path by inserting the following in your settings.py:

    import os
    import sys
    
    PROJECT_ROOT = os.path.dirname(__file__)
    sys.path.insert(0, os.path.join(PROJECT_ROOT, 'apps'))
    

    Then you can use all the apps in this folder just in the same way as they were in your project root!