Выделить сортировку в Django проекте в отдельную функцию

Существуют 2 функции: функция index выводит срез [:5] отфильтрованных карточек постов на главную страницу, функция post_detail отвечает за содержимое этих карточек.

def index(request):
    CONST_NUMBER_OF_POSTS: int = 5
    post_list = Post.objects.filter(is_published=True,
                                    category__is_published=True,
                                    pub_date__lte=timezone.now()
                                    )[:CONST_NUMBER_OF_POSTS]
    context = {
        'post_list': post_list,
    }
    return render(request, 'blog/index.html', context)

def post_detail(request, id):
    post = get_object_or_404(Post,
                             is_published=True,
                             category__is_published=True,
                             pub_date__lte=timezone.now(),
                             id=id)
    if (post.pub_date > timezone.now() or not post.is_published
            or not post.category.is_published):
        raise Http404
    context = {
        'post': post,
    }
    return render(request, 'blog/detail.html', context)

Необходимо логику фильтрации перенести в отдельную функцию, в том числе, конструкцию if. Как это реализовать в коде?

Я пробовал вот так это реализовать:

def sort(self):
    return self.filter(is_published=True,
                       category__is_published=True,
                       pub_date__lte=timezone.now()
                       )

, но ведь .filter не будет работать без Post.objects, или я ошибаюсь? В таком случае, если я правильно функцию написал, как её правильно вставить в функцию index, post_detail?

Я разобрался. Действительно, нужно было передавать query_set в переменной, и:

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