Search code examples
odooredmineredmine-apipython-redmine

Read the null value in Python Redmine API


Using rest API, I am connecting Redmine with Python Script and Populating the data in the ODOO.

In Redmine assigned_to value in issue is empty i.e NULL, while Reading those value.

Traceback (most recent call last):
  File "/home/vignesh/PycharmProjects/vignesh/vigred.py", line 23, in <module>
    redmine_asssigned_to = id.assigned_to
  File "/usr/local/lib/python2.7/dist-packages/python_redmine-1.5.1-py2.7.egg/redmine/resources.py", line 424, in __getattr__
    return super(Issue, self).__getattr__(item)
  File "/usr/local/lib/python2.7/dist-packages/python_redmine-1.5.1-py2.7.egg/redmine/resources.py", line 193, in __getattr__
    return self._action_if_attribute_absent()
  File "/usr/local/lib/python2.7/dist-packages/python_redmine-1.5.1-py2.7.egg/redmine/resources.py", line 294, in _action_if_attribute_absent
    raise ResourceAttrError
redmine.exceptions.ResourceAttrError: Resource doesn't have the requested attribute

Solution

  • Short answer: Use getattr(id, 'assigned_to', None) instead of id.assigned_to.

    Long answer: Python-Redmine raises ResourceAttrError if you're trying to access an attribute that doesn't exist. The problem here is that assigned_to may or may not exist on the resource object depending on if it is set in Redmine or not, also Python-Redmine doesn't hardcode any attributes inside itself, i.e. it gets them dynamically from Redmine, that is why you have this problem.