title: Custom order of items displayed in ModelChoiceField
body: <p>I already had a look in older questions but didn't find an answer that could solve my problem.</p>
  
  <p>Ok, let's assume that I have a model called 'Project':</p>
  
  <pre><code>class Project(models.Model):
    name = models.CharField(max_length=50)
    parentproject = models.ForeignKey('self', related_name="parentproject_related", blank=True, null=True,
                                    verbose_name="parent project")
  
    ... a lot more ...
  </code></pre>
  
  <p>So with this model I can create projects and sub-projects. A project can have several sub-projects which can be identified by the <code>parentproject</code> field.</p>
  
  <p>Inside the <code>DB</code> all projects are inside one table:</p>
  
  <pre><code>project1
  project2
  subproject1
  subprojectA
  project3
  subprojectB
  subproject2
  </code></pre>
  
  <p>With the help of two for-loops an can create the real view onto the data model:</p>
  
  <pre><code>project1
    subproject1
    subproject2
  
  project2
    subprojectA
    subprojectB
  
  project3
  </code></pre>
  
  <p>Now I want that this sorted list is display inside a ChoiceField, so the user can select the appropriate project. Is there a simple way to achieve this? It would also be nice to indent the names of the subprojects for better readability.</p>
  
  <p>Thanks so far!</p>