title: Django JOIN query without foreign key
body: <p>Is there a way in Django to write a query using the ORM, not raw SQL that allows you to JOIN on another table without there being a foreign key? Looking through the documentation it appears in order for the One to One relationship to work there must be a foreign key present?</p>
  
  <p>In the models below I want to run a query with a JOIN on UserActivity.request_url to UserActivityLink.url.</p>
  
  <pre><code>class UserActivity(models.Model):
      id = models.IntegerField(primary_key=True)
      last_activity_ip = models.CharField(max_length=45L, blank=True)
      last_activity_browser = models.CharField(max_length=255L, blank=True)
      last_activity_date = models.DateTimeField(auto_now_add=True)
      request_url = models.CharField(max_length=255L, blank=True)
      session_id = models.CharField(max_length=255L)
      users_id = models.IntegerField()
      class Meta:
          db_table = 'user_activity'
  
  class UserActivityLink(models.Model):
      id = models.IntegerField(primary_key=True)
      url = models.CharField(max_length=255L, blank=True)
      url_description = models.CharField(max_length=255L, blank=True)
      type = models.CharField(max_length=45L, blank=True)
      class Meta:
          db_table = 'user_activity_link'
  </code></pre>
  
  <p>The link table has a more descriptive translation of given URLs in the system, this is needed for some reporting the system will generate.</p>
  
  <p>I've tried creating the foreign key from UserActivity.request_url to UserActivityLink.url but it fails with the following error: ERROR 1452: Cannot add or update a child row: a foreign key constraint fails </p>