title: Django Query extremely slow
body: <p>I have a problem with a Django application. Queries on the model <em>Scope</em> are extremely slow and after some debugging I still have no clue where the problem lies.</p>
  <p>When I query the db like <code>scope = Scope.objects.get(pk='Esoterik I')</code> it takes 5 to 10 seconds. The database has less than 10 entries and an index on the primary key, so it is way too slow. When executing the an equivalent query on the db like <code>SELECT * FROM scope WHERE title='Esoterik I';</code> everything is ok and it takes only about 50ms.</p>
  <p>The same problem happens if I query a set of results like <code>scope_list = Scope.objects.filter(members=some_user)</code> and then call print(scope_list) or iterate over the list elements. The query itself only takes a few ms but the print or iterating of the elements takes again like 5 to 10 seconds but the set has only two entries.</p>
  <p>Database Backend is Postgresql. The same problem occurs on the local development server and apache.</p>
  <p>Here the code of the model:</p>
  <pre><code>class Scope(models.Model):
      title = models.CharField(primary_key=True, max_length=30)
  
      ## the semester the scope is linked with
      assoc_semester  =   models.ForeignKey(Semester, null=True) 
  
      ## the grade of the scope. can be Null if the scope is not a class
      assoc_grade     =   models.ForeignKey(Grade, null=True)
  
      ## the timetable of the scope. can be null if the scope is not direct associated with a class
      assoc_timetable =   models.ForeignKey(Timetable, null=True)
  
      ## the associated subject of the scope
      assoc_subject   =   models.ForeignKey(Subject)
  
      ## the calendar of the scope
      assoc_calendar  =   models.ForeignKey(Calendar)
  
      ## the usergroup of the scope
      assoc_usergroup =   models.ForeignKey(Group)
  
      members = models.ManyToManyField(User)
  
      unread_count = None
  </code></pre>
  <p><strong>update</strong></p>
  <p>Here is the output of the python profiler. It seems that query.py was getting called 1.6 million times - a little too much.
  <img src="https://i.stack.imgur.com/hwYcT.png" alt="python profiler output" /></p>