我能获取分配给项目的用户列表吗?

4 投票
2 回答
2751 浏览
提问于 2025-04-28 00:42

我在使用python-redmine这个模块,想知道有没有办法通过Redmine的API列出一个项目中所有被分配的用户。

我发现我可以请求单个用户的信息,而且我的API密钥用户只被分配到一个特定的项目,它只能看到这个项目中的其他用户。所以我可以这样做,但效率非常低:

from redmine import Redmine
redmine = Redmine("https://myserver.net/", key="blahblah")

my_users = []
for x in range(1, 301):
    try:
        user = redmine.user.get(str(x))
        my_users.append(user.id)
    except:
        print "",

上面的代码能让我得到我想要的结果,也就是项目中的用户列表……但是执行起来太慢,根本不实用。而且可能会有一些用户ID超出我选择的范围。

更新:这是我找到的解决办法,感谢@njzk2

my_users = []
project = redmine.project.get('myproject')
for membership in project.memberships:
    my_users.append(membership.user.id)
暂无标签

2 个回答

5

njzk2的回答很好,但它还是需要进行两次API调用:

  1. redmine.project.get('my_project')
  2. redmine.project.get('my_project').memberships

所以,如果你需要先获取项目的所有详细信息,然后再获取项目的所有成员,这种方法是最好的选择。但如果你只想获取成员,可以通过一次API调用来完成:

redmine.project_membership.filter(project_id='my_project') (文档)

你可能会好奇为什么有这么多方法来做同一件事,其实是因为不同的情况需要不同的解决方案,python-redmine尽量提供多种方式来实现功能。因此,你需要仔细查看文档,找到最适合你具体情况的方法。

4

可能是这样的:

for membership in redmine.project.get('my_project').memberships:
    print membership.user_id

可以查看 这个链接这个链接

撰写回答