【问题标题】:Can I get a list of users assigned to a project?我可以获得分配给项目的用户列表吗?
【发布时间】:2014-10-16 20:52:43
【问题描述】:

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

【问题讨论】:

  • 让我的 API 用户成为管理用户是不可能的。
  • 我会看看 project_membership 资源。

标签: python redmine python-redmine


【解决方案1】:

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 尝试最好提供不同的方法来实现某事。因此,您必须彻底查看文档并找到最适合您的具体情况的可用方法。

【讨论】:

  • 我的实际用例也需要所有项目信息。
【解决方案2】:

大概是这样的:

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

【讨论】:

  • FWIW,在看到您建议的示例后,我意识到 python-redmine 文档对我来说是多么无意义。我可能处于劣势,因为我不熟悉 ORM 风格的界面。 :(
  • 我发现每个对象的可用属性也可能有更多详细信息。
  • 一开始可能很难,但是当你习惯它时,它真的很直观且易于使用。但是,如果你们对如何改进文档有任何想法,只需在 github 上打开一个问题并描述您认为会使文档更易于阅读和理解的改进。
猜你喜欢
  • 1970-01-01
  • 2019-11-30
  • 1970-01-01
  • 2014-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-23
  • 1970-01-01
相关资源
最近更新 更多