Ответы пользователя по тегу Django
  • Как посчитать количество комментариев под постом с помощью annotate()?

    Seletach
    @Seletach Автор вопроса
    Начинающий бекендер
    Вот решение этой задачи:
    class PostListView(ListView):
    '''Список постов'''
        model = Post
        template_name = 'blog/index.html'
        ordering = 'pub_date'
        paginate_by = 10
    
        def get_queryset(self):
            return super().get_queryset().filter(
                category__is_published=True,
                is_published=True,
                pub_date__lte = timezone.now()
                ).annotate(comment_count=Count("comments"))

    С помощью get_queryset достаём из модели Post все посты, далее фильтруем посты (посты и их категория должны быть опубликованы) и добавляем аннотацию, которая считает комментарии в этих постах.
    Ответ написан
    Комментировать
  • Как сделать так чтобы CBV-функция DetailView в Django принимала объект по slug?

    Seletach
    @Seletach Автор вопроса
    Начинающий бекендер
    Я понял что нужно написать,
    slug_url_kwarg = 'username' - так как в запросе slug "кастомный", и его нужно явно указать
    slug_field='username' - так как в БД поле slug тоже называется username
    Спасибо за наводку, datka
    Ответ написан
    Комментировать