Как реализовать "Читать далее" в Django?

Как реализовать "Читать далее" в Djnago? Допустим у меня есть огромный текст. Для среза слов есть фильтр truncatewords,знаю. Но если кто-то захочет прочитать далее,а текст слишком большой - нужна кнопка или ссылка которая покажет весь текст,но как это сделать я не понимаю. Подскажите пожалуйста!

View отвечающий за вывод статьи на сайте(НЕ СТАТЕЙ,а именно отдельной статьи)

class Post(View):
    def get(self,request,post_id):
        try:
            post = News.objects.get(id__iexact=post_id)
            comments = post.comment_set.all()
        except News.DoesNotExist:
            return render(request,'blog/DoesNotExist.html')   
        except Http404:
            raise HttpResponse('Такого поста нет')      
        return render(request,'blog/post.html',context={'post':post,'comments':comments})

Ответы (1 шт):

Автор решения: Roman Konoval

Добавьте во view, которое ответственно за показ страницы с текстом параметр showFullText. Если параметр не передан, то считайте, что он False и тогда делайте обрезание текста. В ссылке генерируйте URL на это же view з showFullText=true.

Если параметра showFullText==true то view должно показывать полный текст.

Это может выглядеть так:

def get(self,request,post_id):
        try:
            # если пареметр не передали то считаем что нужно обрезать
            showFullText = bool(request.GET.get('showFullText', 'False'))
            post = News.objects.get(id__iexact=post_id)
            comments = post.comment_set.all()
        except News.DoesNotExist:
            return render(request,'blog/DoesNotExist.html')   
        except Http404:
            raise HttpResponse('Такого поста нет')      
        return render(request,'blog/post.html',
                 context={
                    'post':post,
                    'showFullText':showFullText, 
                    'comments':comments})

В шаблоне будет как-то так:

{% if showFullText %}
   post.text
{% else %}
   {{ post.text|truncatechars:100 }}
{% endif %}

Ссылку нужно генерировать используя тег url так то так:

<a href="{% url 'post_url_name' post.id %}?showFullText=true">View full text</a>

Вместо post_url_name нужно указать имя, которое для view использовано в urlconf

→ Ссылка