2013-03-26 7 views
2

У меня есть пользовательское поле с именем «Статус» с идентификатором 10100, который является список выбора с дополнительными значениями «One», «Два», "Три" и "Четыре". Значение по умолчанию - «Один».Обновление Выбор списка Пользовательские поля - Jira Python

Я пишу скрипт JIRA python для обновления значения этого поля условно. Скажем, если существующее значение «Один», его следует заменить на «Два».

Это мой код.

from jira.client import JIRA 
jira_options={'server': 'http://localhost:8080'} 
jira=JIRA(options=jira_options,basic_auth=('usrname','pwd')) 

for issue in jira.search_issues(' cf[10100] = "One" '): 
    issue.update(fields={'customfield_10100': 'Two'}) 

Это приносит мне ошибку.

Traceback (most recent call last): 
    File "test.py", line 11, in <module> 
    issue.update(fields={'customfield_10100': 'Two'}) 
    File "C:\Python27\lib\site-packages\jira\resources.py", line 193, in update 
    super(Issue, self).update(**data) 
    File "C:\Python27\lib\site-packages\jira\resources.py", line 72, in update 
    raise_on_error(r) 
    File "C:\Python27\lib\site-packages\jira\exceptions.py", line 29, in raise_on_ 
error 
    error = errorMessages[0] 
IndexError: list index out of range 

Не могли бы вы рассказать мне, что может быть неправильным? Я использовал тот же синтаксис для редактирования настраиваемого поля типа текстового поля, и он отлично работал.

+0

должен ли значение быть массивом? – mdoar

+0

Извините, я не получил запрос @mdoar. Вы имеете в виду значения для параметров в списке выбора? При определении настраиваемого поля я дал его только как строки. – ramz

+0

При попытке решить эту проблему я также заметил, что даже если пользовательское поле (список выбора) с идентификатором 10100 существует, запрос 'http: // localhost: 8080/rest/api/2/customFieldOption/10100' оказался в давая мне ошибку. '{" errorMessages ": [" Опция настраиваемого поля с id '10100' не существует "]," errors ": {}}' Странно. – ramz

ответ

3

Попробуйте так:

issue.update(fields={'customfield_10100': {'value':'Two'}}) 

или как это:

issue.update(fields={'customfield_10100': {'value','Two'}}) 

Я не уверен, какой из них будет работать для вас, потому что я никогда не работал с Python, но один из них должен Работа.

+0

Первый работал для меня. Спасибо! – ramz

+0

Второй недействителен python, но первый работал и для меня. – jalanb

+0

@jalanb Второй действительный Python, '{'value', 'Two'}' оценивается в наборе – RandomGuy

0
issue.update(fields={'customfield_10100': {'value','Two'}}) 

У меня есть список MULTISELECT и ниже ошибка возникает, если я пытаюсь обновить

«response text = {"errorMessages":[],"errors":{"Custom_field":"data was not an array"}}»