Django分页对象在Postgresql查询集中存在问题

2 投票
1 回答
506 浏览
提问于 2025-04-16 11:03

我有一些Django代码,在SQLite数据库和MySQL数据库上运行得很好,但在Postgres上却出现了问题,这让我很困惑,因为我觉得之前应该有人遇到过这个问题。我觉得这可能和分页器处理查询集的方式有关。

在我的视图里,我有:

def index(request, page=1):
    latest_posts = Post.objects.all().order_by('-pub_date')
    paginator = Paginator(latest_posts, 5)
    try:
        posts = paginator.page(page)
    except (EmptyPage, InvalidPage):
        posts = paginator.page(paginator.num_pages)
    return render_to_response('blog/index.html', {'posts' : posts})

在模板里:

{% for post in posts.object_list %}
    {# some rendering jazz #}
{% endfor %}

在SQLite上这没问题,但在Postgres上却给我:

Caught TypeError while rendering: 'NoneType' object is not callable

更麻烦的是,当我把查询集的调用改成:

latest_posts = Post.objects.all()

一切都正常。我试着重新阅读文档,但没找到任何有用的信息,虽然我承认现在有点沮丧。我到底漏掉了什么呢?

提前谢谢大家。

1 个回答

0

这是我犯的一个大错误,完全不能怪Postgresql。问题出在我自己写的一个模板标签上,它处理某些在Postgresql数据库中存在但在SQLite数据库中不存在的帖子时出现了问题。我还在找出具体问题,但这个问题本身是无效的。

撰写回答