id summary reporter owner description type status component version severity resolution keywords cc stage has_patch needs_docs needs_tests needs_better_patch easy ui_ux 9643 Custom managers on related objects generating incorrect SQL Malcolm Tredinnick Malcolm Tredinnick "Using these models, we can generate incorrect SQL. {{{ #!python class Report(models.Model): name = models.CharField(max_length=100) class TaskManager(models.Manager): def get_milestones(self): return super(TaskManager, self).get_query_set().filter(milestone=True) class Task(models.Model): report = models.ForeignKey(Report) name = models.CharField(max_length=100) milestone = models.BooleanField(default=False) objects = TaskManager() def __unicode__(self): return u""%s"" % self.name }}} This gives the correct result: {{{ #!python >>> r = Report.objects.get(name=""r1"") >>> r.task_set.filter(milestone=True) }}} This does not (it doesn't filter on `report_id`): {{{ #!python >>> r.task_set.get_milestones() }}} Whoopsie. :-(" closed Database layer (models, ORM) 1.0 invalid Accepted 0 0 0 0 0 0