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

2024-05-13 00:12:23 发布

您现在位置:Python中文网/ 问答频道 /正文

现在我有:

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个人,然后再次运行操作。你知道怎么做吗


Tags: 目标group数字johnfnamemartinmarksmith
1条回答
网友
1楼 · 发布于 2024-05-13 00:12:23

定义一个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

相关问题 更多 >