title: Django/South: What is the proper way to set related_name arguments for the intermediate model on a ManyToMany to self relation?
body: <p>This is related to a <a href="https://stackoverflow.com/questions/19553054/how-do-i-generate-a-migration-for-changing-a-foreignkey-to-self-to-a-manytoman">question I asked yesterday about migrating a change from a ForeignKey to self to a ManyToManyField to self</a>, however because I'm only prototyping an app for the time being/due to time constraints, I've decided to just drop the relevant tables and reset the migration history. </p>
  
  <p>These are the relevant models/fields:</p>
  
  <pre><code>class Person(models.Model):
      nominator = models.ManyToManyField('self', symmetrical=False,                
              verbose_name=_('nominator'), through='Nomination', null=True,        
              blank=True)
  
  
  class Nomination(models.Model):                                                  
      nominee = models.ForeignKey(Person)                                          
      nominator = models.ForeignKey(Person)
  </code></pre>
  
  <p>However, this doesn't even generate an initial migration:</p>
  
  <pre><code>$ ./manage.py schemamigration nominations --initial
  CommandError: One or more models did not validate:
  nominations.nomination: Accessor for field 'nominee' clashes with related field 'Person.nomination_set'. Add a related_name argument to the definition for 'nominee'.
  nominations.nomination: Accessor for field 'nominator' clashes with related field 'Person.nomination_set'. Add a related_name argument to the definition for 'nominator'.
  </code></pre>
  
  <p>I followed the instructions to add a <code>related_name</code> argument to the <code>nominator</code> and <code>nominee</code> fields on the <code>Nomination</code> model, like so:</p>
  
  <pre><code>class Nomination(models.Model):                                                  
      nominee = models.ForeignKey(Person, related_name=_('nominator'))             
      nominator = models.ForeignKey(Person, related_name=_('nominee'))  
  </code></pre>
  
  <p>That gave me a different error: </p>
  
  <pre><code>$ ./manage.py schemamigration nominations --initial
  CommandError: One or more models did not validate:
  nominations.nomination: Accessor for field 'nominee' clashes with m2m field 'Person.nominator'. Add a related_name argument to the definition for 'nominee'.
  nominations.nomination: Reverse query name for field 'nominee' clashes with m2m field 'Person.nominator'. Add a related_name argument to the definition for 'nominee'.
  </code></pre>
  
  <p>I'm not sure what to do from this point. I get the feeling that I've forgotten something the <code>Person</code> model, but I'm not sure what that could be since both the Django/South docs are not terribly forthcoming when it comes to this kind of relation.</p>