我有一个简单的联系人应用程序,我想根据名字字母表对联系人列表进行分页 .
这是我的views.py
def contacts(request):
contact_list = Contact.objects.filter(user=request.user).order_by('first_name')
return render(request, 'contact/contact.html', {'contact_list': contact_list})
这是我的模板
<ul>
{% for contact in contact_list %}
<li><a href="/contacts/{{ contact.id }}/">{{ contact.first_name }}</a></li>
{% endfor %}
</ul>
Django有默认方式吗?有Django pagination但我认为只跨页面拆分数据 . 最简单的方法是什么?
2 回答
似乎默认情况下不存在字母顺序的分页符 . 像https://djangosnippets.org/snippets/1364/ <<<这一页显示手工制作的实现 .
但是,实现起来并不难:您可以将自己 Build 在startswith关键字上,并且:
(让myQuerySet实际上是contact_list;让myfield实际上是first_name) .
我已经完成了一次,通过在我的模型中添加一个字母字段并手动添加"paginating" . 这引起了很多外国字母表的有趣情况 . 发现这很有用:https://pypi.python.org/pypi/Unidecode
没有找到任何“更聪明”的方式去做 . 但我有兴趣听到更多“即插即用”解决方案......