Как создать пагинацию и фильтр категорий в django-cms? - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть следующая модель:

class Post(models.Model):
    title = models.CharField(max_length=100)
    short_description = models.CharField(max_length=100)
    image = models.ImageField(upload_to="uploads/images/")
    content = HTMLField(blank=True)
    slug = AutoSlugField(always_update=True,populate_from='title', unique=True) 
    date_created = models.DateField(default=datetime.date.today())

Здесь я получаю список сообщений:

posts = []
for plugin in plugins:
     posts.extend(Post.objects.filter(id=plugin[0].post_id))

Мой следующий шаг - создать фильтр разбивки на страницы и категорий, но я не знаюкак это сделать.Для разбивки на страницы у меня есть простое решение - я хочу разбить полный список постов на небольшие списки с количеством статических элементов (в примере 3 поста):

full_list = [Post1, Post2, Post3, Post4, Post5, Post6, Post7, Post8, Post9]

split_list = [[Post1, Post2, Post3], [Post4, Post5, Post6], [Post7, Post8, Post9]]

Каждый элемент split_list соответствует одномустраница нумерации страниц.Для каждой страницы разбиения на страницы я программно генерирую страницу.Таким образом, каждый элемент split_list имеет свою собственную страницу.

И тот же механизм для категорий - у каждой категории есть собственная страница.

Как объединить эти вещи?Может быть, я должен создать отдельные страницы разбиения на страницы для каждой категории?

РЕДАКТИРОВАТЬ 1: Итак, у меня есть еще одна идея - создать подстраницу для каждой категории, чем добавлять посты в эти подстраницы.В полном списке - получить все сообщения с этих страниц.

...