Django-filter не фильтрует

У меня есть модель проекта, которая связана с manytomany с пользователем. Изначально я создаю кверисет, который включает все проекты вошедшего пользователя. Кверисет содержит два проекта, один из которых author = False. После я фильтрую его как /project/list/?Shared=True, но это не работает. После фильтрации должен был остаться только один проект, но все равно возвращается два, я не могу понять, с чем это связано

модель

class Project(models.Model):
    name = models.CharField(max_length=255, blank=True, null=True)
    members = models.ManyToManyField(User, through="UserProject", related_name="project")

class UserProject(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    project = models.ForeignKey(Project, on_delete=models.CASCADE)
    author = models.BooleanField(default=False)

api

class ListProjectApi(ListApi):
    serializer_class = ProjectSerializer
    lookup_field = "id"
    queryset = Project.objects.all()
    filter_backends = (DjangoFilterBackend,)
    filterset_class = ProjectFilter

    def get_queryset(self):
        user = self.request.user
        projects = user.project.all()
        return projects

фильтр

class ProjectFilter(rest_framework.FilterSet):
    author = rest_framework.BooleanFilter(field_name="author", method="filter_author")
    shared = rest_framework.BooleanFilter(field_name="shared", method="filter_shared")

    class Meta:
        model = Project
        filter_fields = ["author", "shared"]

    def filter_author(self, queryset, name, value):
        if name == "author" and value is True:
            logger.info(queryset)
            projects = queryset.filter(userproject__author=True)
            logger.info(projects)
            return projects

logs

2021-12-24 17:54:59,927 ruchnoi INFO <QuerySet [<Project: test>, <Project: author>]> None

2021-12-24 17:54:59,932 ruchnoi INFO <QuerySet [<Project: test>, <Project: author>]> None

Вернуться на верх