4

使用 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 可能高于我选择的任何范围。

更新:这是我要工作的,thnx @njzk2

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

2 回答 2

5

njzk2的回答很好,但它仍然进行了 2 个单独的 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 尝试最好提供不同的方法来实现某事。因此,您必须彻底查看文档并找到最适合您的具体情况的可用方法。

于 2014-10-18T07:24:55.073 回答
4

大概是这样的:

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

http://python-redmine.readthedocs.org/resources/project_membership.htmlhttp://python-redmine.readthedocs.org/resources/project.html

于 2014-10-16T21:01:29.630 回答