Фильтры 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)
Могу ли я как-то избежать дублирования фильтров?