【问题标题】:Pagination on queryset on only a segment of the page and not the whole page仅在页面的一部分而不是整个页面上对查询集进行分页
【发布时间】:2020-07-17 19:59:19
【问题描述】:

我有一个页面,其中包含特定类别的项目,从最赚钱的前 x 个项目开始,然后是观看次数最多的前 x 个项目,第三部分包含该类别的所有(其他)项目。

这第三部分很长,因为它包含此特定类别的所有项目。因此,我想对它们进行分页。但是使用标准分页转到下一页会刷新页面,在页面顶部结束,需要再次向下滚动到第三部分(每次选择下一页时),这不是很用户友好。

我看到一个网站(kickstarter),他们只能对页面的一个部分进行分页,而网站的其他部分保持不变,这正是我想要的。但我是新手,我不知道该怎么做。

感谢您的任何想法和帮助!

我的 HTML 代码:

{% for project in projects|dictsortreversed:"created_date"%}
            {% if project.num_days > 0 %}
                <div class="row no-gutters">
                        <div class="offset-1 col-4 mb-5 ">
                            {% if project.image %}
                            <a href="{% url 'project_detail' project.id %}" target="_blank">
                                <img class="img-fluid mt-5" src="{{MEDIA_URL}}{{ project.image }}">
                            </a>
                            {% else %}
                            <a href="{% url 'project_detail' project.id %}" target="_blank">
                                <img class="img-fluid mt-5" src="{% static 'img/No-image-available.png' %}" alt="no image available">
                            </a>
                            {% endif %}
                        </div>
                        <div class="offset-1 col-6 mt-5">
                            <a href="{% url 'project_detail' project.id %}" target="_blank">
                                <h3 class="maintext">{{ project.title}}</h3>
                            </a>
                            <p class="subtext">{{ project.category }}</p>
                            <p>{{ project.description |truncatewords:60}}</p>
                            <p class="subtext mb-5">goal: ${{project.goal}} &nbsp&nbsp&nbsp&nbsp  ends in: {{ project.num_days }} days</p>
                        </div>
                </div>
            {% endif %}
        {% endfor%}

我的查看代码

def get_project_category(request, project_category):
    """
    Projects for a specific category

    """
    projects = Project.objects.filter(
        category=Category.objects.get(category=project_category).id).order_by('-created_date')
    projects.category = project_category
    
    calculations(projects)
        
    context = {
        'projects': projects,

    }

    return render(request, 'project_category.html', context)

【问题讨论】:

    标签: django pagination


    【解决方案1】:

    我用https://datatables.net/manual/installation。

    它制作了一个带有自动搜索选项和分页的表格。它无需从页面顶部开始分页。

    在我使用 CSS 消除表格样式之后。所以让标题不可见,并在表格中添加了一个额外的列来创建我的图像和文本之间的间距。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 2014-06-24
      • 1970-01-01
      • 1970-01-01
      • 2020-08-06
      相关资源
      最近更新 更多