I have a problem with a Django application. Queries on the model Scope are extremely slow and after some debugging I still have no clue where the problem lies.
When I query the db like scope = Scope.objects.get(pk='Esoterik I') 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 SELECT * FROM scope WHERE title='Esoterik I'; everything is ok and it takes only about 50ms.
The same problem happens if I query a set of results like scope_list = Scope.objects.filter(members=some_user) 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.
Database Backend is Postgresql. The same problem occurs on the local development server and apache.
Here the code of the model:
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 update
Here is the output of the python profiler. It seems that query.py was getting called 1.6 million times - a little too much. 
__unicode__()method? could you post it?def __unicode__(self): return self.titleDEBUGTrue or False in settings.py?