Фильтры django orm и вложенные фильтры Prefetch

Мне нужно получить всех пользователей, у которых есть экземпляры со статусом running или create, и получить экземпляры для этих пользователей с тем же фильтром, мой запрос выглядит как

queryset = User.objects.filter(
            Q(testinstance__status=TestInstance.RUNNING) |
            Q(testinstance__status=TestInstance.CREATING)
        ).order_by('first_name').prefetch_related(Prefetch(
            'testinstance_set',
            queryset=TestInstance.objects.filter(
                Q(status=TestInstance.RUNNING) | Q(status=TestInstance.CREATING)
            ).order_by('-started_at')
        )).distinct()

модели:

class TestInstance(models.Model):
    author = models.ForeignKey(User, on_delete=models.CASCADE)

Могу ли я как-то избежать дублирования фильтров?

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