2014-10-16 51 views
2

使用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) 
+0

使我的API用户成为管理用户是不可能的。 – paxos1977 2014-10-16 20:56:57

+0

我会看看project_membership资源。 – njzk2 2014-10-16 20:58:34

回答

3

大概是这样的:

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

+0

FWIW,在看到你的建议例子后,我意识到python-redmine文档对我来说是多么的无用。我可能处于劣势,因为我不熟悉ORM风格的界面。 :( – paxos1977 2014-10-16 21:28:08

+0

我发现每个对象上的属性都可能有更多的细节 – njzk2 2014-10-17 13:05:50

+0

也许刚开始的时候很难,但是当你习惯了它的时候,它非常直观且易于使用,但是如果你们有一个关于如何改进文档的想法,只需在github上打开一个问题,并描述你认为会使文档更易于阅读和理解的改进。 – 2014-10-18 07:29:12

3

答案由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')docs

你可能想知道为什么有这么多的方式做一两件事,那么,因为可能有不同的用例,python-redmine尝试提供不同的方式来实现。因此,您必须彻底查看文档并找到适用于您的确切情况的最佳可用方式。

+0

我的实际使用案例也需要所有项目信息。 – paxos1977 2014-11-06 21:47:07

相关问题