﻿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
30721	Implicit related objects filtration because of the set Manager.	ApaDoctor	nobody	"When abstract model is defined with `objects` manager.
And its child-model defines another manager - RelatedManager uses defined manager instead of objects.

{{{#!python
class SomeAbstractModel(models.Model):
    class Meta:
        abstract = True

    objects = models.Manager()


class CustomManager(models.Manager):
    def get_queryset(self):
        return super().get_queryset().filter(some_field=True)


class SomeThing(SomeAbstractModel):
    some_field = models.BooleanField()

    parent = models.ForeignKey(
        ""SomeThing"", related_name=""children"", on_delete=models.SET_NULL, null=True
    )

    custom_objects = CustomManager()
}}}

So we have abstract model, which defines `objects` manager for the model.

Our model uses that abstract class.

I created some objects:
{{{#!python
SomeThing(some_field=True).save()
SomeThing.objects.bulk_create([SomeThing(some_field=bool(x%2), parent_id=1) for x in range(0,6)])
}}}

After i reloaded shell i tried to make queries:
{{{#!python
>>> x = SomeThing.objects.get(id=1)
>>> x.children.count()
3
>>>SomeThing.objects.filter(parent_id=1).count()
6
}}}

Generated raw SQL for first query is:

{{{#!sql
SELECT COUNT(*) AS ""__count"" FROM ""sapp_something"" WHERE (""sapp_something"".""some_field"" = true AND ""some_something"".""parent_id"" = 1)
}}}
"	Bug	closed	Database layer (models, ORM)	dev	Normal	invalid			Unreviewed	0	0	0	0	0	0
