使用python-redmine模块,有没有办法列出通过Redmine API分配给项目的所有用户?
我发现我能够请求有关个人用户的信息,并且API Key用户可能只被分配到特定项目,并且只能看到项目中的其他用户。所以我可以做到以下几点,但效率非常低:
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)
答案 0 :(得分:3)
可能类似于:
for membership in redmine.project.get('my_project').memberships:
print membership.user_id
请参阅http://python-redmine.readthedocs.org/resources/project_membership.html和 http://python-redmine.readthedocs.org/resources/project.html
答案 1 :(得分:3)
njzk2 的答案很好,但仍会进行2次单独的API调用:
redmine.project.get('my_project')
redmine.project.get('my_project').memberships
因此,如果您需要首先获得项目的所有可用详细信息以及项目的所有成员,那么这是最佳选择。但是如果你只需要获得成员,你可以通过以下方式在一个API调用中完成:
redmine.project_membership.filter(project_id='my_project')
(docs)
你可能想知道为什么有这么多方法做一件事,好吧,因为可能有不同的用例和python-redmine尝试最好提供不同的方法来实现。因此,您必须彻底查看文档,找到最适合您的确切案例的方法。