title: Django sub-applications & module structure
body: <p>I am developing a Django application, which is a large system that requires multiple sub-applications to keep things neat. Therefore, I have a top level directory that is a Django app (as it has an empty <code>models.py</code> file), and multiple subdirectories, which are also applications in themselves.</p>
  
  <p>The reason I have laid my application out in this way is because the sub-applications are separated, but they would never be used on their own, outside the parent application. It therefore makes no sense to distribute them separately.</p>
  
  <p>When installing my application, the settings file has to include something like this:</p>
  
  <pre><code>INSTALLED_APPS = (
      ...
      'myapp',
      'myapp.subapp1',
      'myapp.subapp2',
      ...
  )
  </code></pre>
  
  <p>...which is obviously suboptimal. This also has the slightly nasty result of requiring that all the sub-applications are referred to by their "inner" name (i.e. <code>subapp1</code>, <code>subapp2</code> etc.). For example, if I want to reset the database tables for subapp1, I have to type:</p>
  
  <pre><code>python manage.py reset subapp1
  </code></pre>
  
  <p>This is annoying, especially because I have a sub-app called <code>core</code> - which is likely to conflict with another application's name when my application is installed in a user's project.</p>
  
  <p>Am I doing this completely wrongly, or is there away to force these "inner" apps to be referred to by their full name?</p>