【问题标题】:How to get paginated answer's response?如何获得分页答案的响应?
【发布时间】:2018-11-06 11:35:00
【问题描述】:

我正在使用 django 作为网站的后端

将有 10 个 qwestions 我想对它们进行分页(给出一个 qwestion 的答案,然后转到下一个,依此类推),最后给出根据给出的所有答案计算的分数

关于如何做的任何提示?

我发现了类似的东西,但不知道如何在 django 中实现

What's the most efficient way to calculate a running total/balance when using pagination (PHP, MySQL)

【问题讨论】:

    标签: django pagination


    【解决方案1】:

    你看过 Django Pagination 文档吗?

    https://docs.djangoproject.com/en/2.1/topics/pagination/

    从那个页面

    你的看法:

    from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
    from django.shortcuts import render
    
    def listing(request):
        contact_list = Contacts.objects.all()
        paginator = Paginator(contact_list, 25) # 25 is the items per page, in Your case would be 1
    
        page = request.GET.get('page')
        contacts = paginator.get_page(page)
        return render(request, 'list.html', {'contacts': contacts})
    

    您的模板:

    {% for contact in contacts %}
        {# Each "contact" is a Contact model object. #}
        {{ contact.full_name|upper }}<br>
        ...
    {% endfor %}
    
    <div class="pagination">
        <span class="step-links">
            {% if contacts.has_previous %}
                <a href="?page=1">&laquo; first</a>
                <a href="?page={{ contacts.previous_page_number }}">previous</a>
            {% endif %}
    
            <span class="current">
                Page {{ contacts.number }} of {{ contacts.paginator.num_pages }}.
            </span>
    
            {% if contacts.has_next %}
                <a href="?page={{ contacts.next_page_number }}">next</a>
                <a href="?page={{ contacts.paginator.num_pages }}">last &raquo;</a>
            {% endif %}
        </span>
    </div>
    

    要转到一个页面,您应该添加到 url ?page=1 其中 1 是页码。

    【讨论】:

    • 我在实现分页时没有问题我想要做的是根据正确答案计算分数,如果所有 qwestions 都在同一页面中,则可以使用一个响应来发送所有答案,最后计算分数。由于 qwestions 是分页的,因此如何跟踪以前 qwestions 的答案,它们是对还是错,获得了多少分数等
    • 起初,我看到您的问题有两种不同的解决方案。您不能使用服务器分页,即在一页上提供所有问题,而是使用 javascript 模拟分页。这样,您可以在一个请求中发送所有问题。或者,您可以使用服务器分页,但创建一个名为 Questionary 的模型,或者类似的东西,一个 Question 有一个 Questionary 的外键。当您提供第一个问题时,您也会创建一个问题,依此类推。当用户回答最后一个问题时,您可以通过问题获得所有相关问题。
    猜你喜欢
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    相关资源
    最近更新 更多