Размещение моделей

На сайте необходимо разместить посты, чтобы их можно было создавать и редактировать, но в дизайне сайта посты разделены слайдерами и другими элементами, как возможно реализовать это таким образом, чтобы прочие элементы верстки, так сказать, игнорировались?

Я пробовал решить эту проблему при помощи создания дополнительных моделей, т.е посты до разделяющих элементов (слайдеров в данном случае) взять в один класс, а последующие в другой и далее их уже таким образом редактировать. Конечно костыль, но не знаю, как его настроить, т.к совместно эти модели у меня не отображаются, т.е либо одна, либо другая. Также я создал отдельный класс для Главного Поста, т.к он имеет другое оформление и по сути всегда висит в топе, но конечно идеально реализовать так, чтобы у модели был такой атрибут, чтобы можно было указать конкретному посту, что он является главным и само собой размещался в начале сайта.

Вот мой код (допустим, что мы добавили еще Posts_one, Posts_two, если говорить о случае использовании костыля, который у меня также не удался):

models.py:

    from django.conf import settings
    from django.db import models
    from django.utils import timezone
    from django.contrib.auth.models import User

    class **Toppost**(models.Model):
        title = models.CharField(max_length=200)
        caption = models.CharField(max_length=150, default='краткое описание поста')
        text = models.TextField()
        created_date = models.DateTimeField(default=timezone.now)
        published_date = models.DateTimeField(blank=True, null=True)

        def publish(self):
            self.published_date = timezone.now()
            self.save()

        def __str__(self):
            return self.title


    class **Post**(models.Model):
        title = models.CharField(max_length=200)
        caption = models.CharField(max_length=150, default='краткое описание поста')
        text = models.TextField()
        created_date = models.DateTimeField(default=timezone.now)
        published_date = models.DateTimeField(blank=True, null=True)

        def publish(self):
            self.published_date = timezone.now()
            self.save()

        def __str__(self):
            return self.title

views.py:

from django.shortcuts import render, get_object_or_404
from django.utils import timezone
from .models import Post, Toppost

def posts_list(request):
    posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
    return render(request, 'blog/posts_list.html', {'posts': posts})

    topposts = Toppost.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
    return render(request, 'blog/posts_list.html', {'topposts': topposts})

Также прилагаю скриншот со схемой, как это должно выглядеть. В идеале, конечно интересно узнать, как это можно реализовать так, чтобы все это было одной моделью Posts и не разрушало вёрстку сайта и чтобы можно было выделить любой пост как Главный_Пост.

схема


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