2014-02-18 23 views
0

我有一个简单的联系人应用程序,我想根据名字母拼写联系人列表。基于字母表的分页(A-Z)

这里是我的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,但我认为只能分页跨数据。最简单的方法是什么?

回答

1

这似乎是一个字母明智的paginator默认情况下不存在。像https://djangosnippets.org/snippets/1364/ < < <这一个显示手工制作的实现。

然而,这并不难实现:你可以自己基础上startswith关键字:

pages = [myQuerySet.filter(myfield__istartswith=i) for i in "ABC...XYZ"] #full alphabet here 

(让myQuerySet是,实际上,CONTACT_LIST;让MyField的是,实际上,FIRST_NAME)。

0

我已经完成了一次,在我的模型中添加了一个字母字段并手动“分页”。这与外国字母引起了很多有趣的情况。发现这个有用的:https://pypi.python.org/pypi/Unidecode

没有找到任何“更聪明”的方式去解决它。但我有兴趣听到更多的“即插即用”解决方案......

相关问题