Django pagination duplicate posts

Здравствуйте у меня странная ошибка pagnation works fine on my home.html but in my categories.html it duplicate post as soon as it paginates how can i fix this. Вот код к файлам, в которых возникает проблема.

проблема должна быть из def CategoryView.

я пытался изменить order_by id и некоторые мелочи в категориях, но не могу понять, почему пост дублируется на pagnation.

views.py

categories.html

{% extends 'base.html' %}

{% block content %}


    <h1 class="headerh1">{{ cats }}</h1>
    <div class="container">
        <div class="row">
            <!-- Blog Entries Column -->
            <div class="col-md-8 mt-3 left">
                {% for post in cat_menu_list %}
                <div class="card mb-4">
                    <div class="card-body">
                        <h2 class="card-title"><a href="{% url 'article-detail' post.pk %}" class="text-dark">{{post.title }}</a></h2>
                        <p class="card-text text-dark h6">{{ post.author.first_name }} {{post.author.last_name }} | {{ post.post_date }}
                            <a href="{% url 'category' post.category|slugify %}">{{ post.category }}</a></p>
                            {% if post.header_image %}
                    <img id="uploadimg" src="{{ post.header_image.url }}">
                {% endif %}
                        <div class="card-text">{{ post.body|safe|slice:":200" }}</div>
                        <a href="{% url 'article-detail' post.pk %}" class="btn btn-info">Read More</a>
                    {% if user.is_authenticated %}
                        {% if user.id == post.author.id %}
                        <a href="{% url 'update_post' post.pk %}" class="btn btn-primary">Edit</a>
                        <a href="{% url 'delete_post' post.pk %}" class="btn btn-danger">Delete</a>
                        {% endif %}
                {% endif %}
                    </div>
                </div>
            {% endfor %}
            </div>
        </div>
    </div>


        <div class="pagination">
        <nav aria-label="Page navigation">
            <ul class="pagination justify-content-center">
                {% if page_obj.has_previous %}
                <li><a href="?page={{ page_obj.previous_page_number }}" class="page-link">&laquo; PREV </a></li>
                {% endif %}
                {% if page_obj.has_next %}
                <li><a href="?page={{ page_obj.next_page_number }}" class="page-link"> NEXT &raquo;</a></li>

                {% endif %}
            </ul>
        </nav>
    </div>

{% endblock %}

Я не могу посмотреть ваш models.py, но возможно проблема в том, что category является полем ManyToMany для Post. Поэтому вы можете получить один и тот же пост дважды при фильтрации.

Попробуйте использовать distinct() в вашем наборе запросов:

cat_menu_list = Post.objects.filter(
    category=cats.replace(
        '-', ' ')).order_by('-id').distinct()
Вернуться на верх