Какой самый эффективный способ сделать предварительный просмотр сообщений на Django? - PullRequest
0 голосов
/ 27 апреля 2020

Я делаю блог, где хочу, чтобы на главной странице отображались только первые 100 символов каждого сообщения.

Моя цель - лучше использовать пространство. Если человек хочет прочитать сообщение, он может просто щелкнуть, чтобы прочитать его.

У меня есть несколько идей о том, как это сделать, но я думаю, что они не будут работать или неэффективны:

  • Чтобы создать подкласс в блоге models.py, где я бы унаследовал класс Post, сохраните первые сто символов каждого содержимого в списке и сделайте al oop, чтобы сохранить каждый список в базе данных;
  • Чтобы разместить инструкцию в классе views.py 'FirstPageView' блога, где он будет отображать только первые сто символов.

Упомянутые классы 'Post' и 'FirstPageView' следующие:

на 'blog / views.py':

from django.views.generic import ListView

class FirstPageView(ListView):
    model = Post
    template_name = 'Blog/home.html'
    context_object_name = 'posts'
    ordering = ['-date_posted']
    paginate_by = 6

на 'blog / models.py':

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse


class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    date_posted = models.DateTimeField(default=timezone.now)
    author = models.ForeignKey(User, models.SET_NULL, blank=True, null=True)

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('post-detail', kwargs={'pk': self.pk})

Так что бы быть самым эффективным способом сделать эти предварительные просмотры?

1 Ответ

1 голос
/ 27 апреля 2020

Вы можете использовать встроенные теги шаблонов :

{{ posts.content|truncatechars:100 }}

...