如何在django admin中将递增组编号添加到查询集?

时间:2014-08-09 15:28:38

标签: python django

现在我有:

fname   lname   group#
john    smith  
Mark    Tibbet
Martin  spacey
Cornel  willis
Jack    Sparrow

我的目标是让他们像这样分组:

fname   lname   group#

john    smith   1 
Mark    Tibbet  1
Martin  spacey  2
Cornel  willis  2
Jack    Sparrow 3

所以基本上我想要输入一个数字(比如说2),它给出了我们上面显示的两组数字。有5个人,我想要两个人的团体,即使没有足够的人,它仍然将它们分组,直到添加第6个人并再次运行该动作。任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:0)

以免定义一个chuncker函数

def chunker(seq, size):
    return (seq[pos:pos + size] for pos in xrange(0, len(seq), size))

def assing_group_number(group,number):
    for member in group:
        member.group = number
        member.save()

users = User.objects.all()

chunk_size = 2 
group_number = 1
final_groups = []
for group_users in chunker(users, chunk_size):
    #here we are iterating over the users in groups of length = chunk size
    #and then assigning them a group_number
    assing_group_number(group_users,group_number)
    group_number += 1