title: How do I model a symmetric relationship with django?
body: <p>Let's use the classic example of friends.</p>
  
  <pre><code>class Friendship(models.Model):
      user1 = models.ForeignKey(User, related_name='friends1')
      user2 = models.ForeignKey(User, related_name='friends2')
      handshakes = models.PositiveIntegerField()
      hugs = models.PositiveIntegerField()
      # other silly data
  </code></pre>
  
  <p>Two friends in a friendship (user1 and user2) should be completely equal.  I should be able to say that (user1, user2) are unique_together and not have to worry about (user2, user1) accidentally showing up.  I should be able to get all the friends of a given user easily, but instead I'd have to write a custom manager or create some other way of getting all the Friendships where that user is user1 in the relationship, and all the Friendships where that user is user2.</p>
  
  <p>I'm considering trying to write my own SymmetricKey.  Someone please stop me.</p>