Django检索给定查询的最后10条记录

时间:2019-05-20 15:19:10

标签: django django-templates django-views

我正在阅读django文档,并认为这样做可以将结果查询结果限制为最后10个结果,但这不是这样做的。

这是我的数据库查询:

TSUH = TSUH.objects.filter(FKToUser_id=request.user).all()[10:]
    TSFH = TSFH.objects.filter(FKToUser_id=request.user).all()[10:]
    TSJH = TSJH.objects.filter(FKToUser_id=request.user).all()[10:]

    return render(request, page.html', {
         'GivenTSUH':TSUH

    })

我的模板包含:

    {% if TSUH %}
        {% for T in TSUH %}
            <li>{{ T.scanBegin }}<span> to <span>{{ T.begin }}</span> </li>
        {% endfor %}
    {% else %}
        It appears there are no results.
    {% endif %}

这将为每个查询返回10个以上的结果。 all()丢掉了吗?

有什么想法吗?谢谢

2 个答案:

答案 0 :(得分:1)

您使用的语法不正确。它应该是:之后的数字,而不是之前的数字。您也可以使用reverse更改查询顺序,如下所示:

TSUH = TSUH.objects.filter(FKToUser_id=request.user).reverse()[:10]

答案 1 :(得分:0)

您可以尝试

TSFH = TSFH.objects.filter(FKToUser_id=request.user).all().order_by('-pk').[:10]
TSJH = TSJH.objects.filter(FKToUser_id=request.user).all().order_by('-pk').[:10]

这将给出10条最后插入的记录。