0

setattr()Redmineの問題のアイテムの場合、次のエラーで失敗しています。

Traceback (most recent call last):
  File "E:\test\get_redmine_data.py", line 47, in <module>
    print (item.assigned_to)
  File "C:\Python27\lib\site-packages\redminelib\resources\standard.py", line 150, in __getattr__
    return super(Issue, self).__getattr__(attr)
  File "C:\Python27\lib\site-packages\redminelib\resources\base.py", line 164, in __getattr__
    attr, encoded = self.encode(attr, decoded, self.manager)
  File "C:\Python27\lib\site-packages\redminelib\resources\base.py", line 266, in encode
    return attr, manager.new_manager(cls._resource_map[attr]).to_resource(value)
  File "C:\Python27\lib\site-packages\redminelib\managers\base.py", line 29, in to_resource
    return self.resource_class(self, resource)
  File "C:\Python27\lib\site-packages\redminelib\resources\base.py", line 130, in __init__
    self._decoded_attrs = dict(dict.fromkeys(relations_includes), **attributes)
TypeError: type object argument after ** must be a mapping, not str

担当者が設定されていない問題について、デフォルトの担当者を設定しようとしています。コードは、設定したばかりの属性を出力する行で失敗します。私のコードは以下のとおりです。

redmine = Redmine('http://redmine_url', username='uname', password='pwd')
project = redmine.project.get('proj_name')
work_items = project.issues
for item in work_items:
   assignee_not_set = getattr(item,'assigned_to',True)
   if assignee_not_set == True:
       print item.id
       setattr(item,'assigned_to','Deepak')
       print (item.assigned_to)

update() メソッドも使ってみましたが、

redmine.project.update(item.id, assigned_to='Deepak')

これも別のエラーで失敗します - redminelib.exceptions.ResourceNotFoundError: Requested resource doesn't exist。問題 ID が Redmine に存在することを確認しました。

4

1 に答える 1

2

ここにはいくつかの問題があります。

  1. 属性名はassigned_to_idありませんassigned_to
  2. intユーザー名ではなく、ユーザーIDを受け入れますstr
  3. setattr()ここで使用する必要はありません。使用するだけですitem.assigned_to_id = 123
  4. item.save()設定後に呼び出す必要があります。assigned_to_idそうしないと、Redmine に保存されません。
  5. update()メソッドを使用しようとしている場合、Projectリソースではなくリソースで in を使用していIssueます。これが、取得している理由です。ResourceNotFoundError

この情報はすべてドキュメントで入手できます: https://python-redmine.com/resources/issue.html

于 2019-02-14T10:54:21.647 に答える