title: Correct way to model recursive relationship in Django
body: <p>My application has two node types: a <strong>parent node</strong> which can hold recursive <strong>child nodes</strong>. Think of it like the post-comment system in SO, but comments can be recursive:</p>
  
  <pre><code>parent_1
    child_11
    child_12
      child_121
    child_13
  parent_2
    child_21
      child_211
        child_2111
  </code></pre>
  
  <p>Important to note that the parent nodes have different attributes and behavior than the child nodes.</p>
  
  <p>Barring recursion I would have the following models:</p>
  
  <pre><code>class Parent(models.Model):
      # fields ...
  
  class Child(models.Model):
      parent = models.ForeignKey(Parent)
      # other fields ...
  </code></pre>
  
  <p>But the recursion complicates this. What is the correct (and presumably most efficient) way of modeling this relationship in Django?</p>