如何在 Trac 中获取票证字段
How to get ticket fields in Trac
如何通过 Python 在 Trac 中获取工单字段列表(如里程碑、版本和所有自定义字段)?
在 Trac 文档中,我找到了 TicketSystem class,但它是一个组件,我无法实例化它。那么,如果我需要它的实例,我该如何访问它的方法呢?
编辑: 我发现了如何访问默认字段。例如。对于里程碑,它是 model.Milestone.select(self.env)
。现在的问题是,如何访问自定义票证字段?必须有一种无需手动访问数据库即可完成此操作的方法,因为 TicketSystem class 中的方法 get_custom_fields()
存在。
编辑 2: 我刚刚发现 get_custom_fields()
只有 returns 可用字段,而不是它们的值。我想要做的是获取特定自定义字段的所有可用值。
In the Trac documentation I have found the TicketSystem class, but it is a component and I cannot instantiate it.
您可以使用语句 ts = TicketSystem(self.env)
.
获取对 Component 的引用,它是一个单例
I just found out that get_custom_fields() only returns the available fields, but not their values. What I want to do is get all available values of a specific custom field.
这是不正确的。您可以使用以下语句获取工单自定义字段的可能值:
fields = TicketSystem(self.env).get_custom_fields()
options = fields[idx].get('options', [])
其中 idx
是列表中您希望为其检索选项的字段的索引。仅当 field['type']
为 select
或 radio
时,列表才会为非空。参见 trac.ticket.api.TicketSystem.customfields。
I found out how I can access the default fields. E.g. for milestones, it is model.Milestone.select(self.env)
.
您应该使用 TicketSystem(self.env).get_ticket_fields()
访问所有字段。该语句将 return 所有字段,包括自定义字段。
如何通过 Python 在 Trac 中获取工单字段列表(如里程碑、版本和所有自定义字段)?
在 Trac 文档中,我找到了 TicketSystem class,但它是一个组件,我无法实例化它。那么,如果我需要它的实例,我该如何访问它的方法呢?
编辑: 我发现了如何访问默认字段。例如。对于里程碑,它是 model.Milestone.select(self.env)
。现在的问题是,如何访问自定义票证字段?必须有一种无需手动访问数据库即可完成此操作的方法,因为 TicketSystem class 中的方法 get_custom_fields()
存在。
编辑 2: 我刚刚发现 get_custom_fields()
只有 returns 可用字段,而不是它们的值。我想要做的是获取特定自定义字段的所有可用值。
In the Trac documentation I have found the TicketSystem class, but it is a component and I cannot instantiate it.
您可以使用语句 ts = TicketSystem(self.env)
.
I just found out that get_custom_fields() only returns the available fields, but not their values. What I want to do is get all available values of a specific custom field.
这是不正确的。您可以使用以下语句获取工单自定义字段的可能值:
fields = TicketSystem(self.env).get_custom_fields()
options = fields[idx].get('options', [])
其中 idx
是列表中您希望为其检索选项的字段的索引。仅当 field['type']
为 select
或 radio
时,列表才会为非空。参见 trac.ticket.api.TicketSystem.customfields。
I found out how I can access the default fields. E.g. for milestones, it is
model.Milestone.select(self.env)
.
您应该使用 TicketSystem(self.env).get_ticket_fields()
访问所有字段。该语句将 return 所有字段,包括自定义字段。