Я действительно застрял в этом. Я создал новый класс в Odoo, который мне нужен для вызова с контроллера. Этот объект должен получить данные о клиенте (res.partner), когда я передаю ему поле id, которое я создал.Отсутствие ошибки объекта объекта при попытке использовать унаследованный объект Odoo
Проблема заключается в том, что я не могу назвать метод parse в своем классе. Однако я делаю это, я получаю объект nonetype, который не имеет атрибута.
Что я делаю неправильно? Я ноб? И также я делаю это сложнее, чем нужно?
Вот мой класс в файле с именем callback.py
__author__ = 'karl'
import requests
import json
from openerp import models, api
import logging
_logger = logging.getLogger(__name__)
class JiraParse(models.Model):
_name = "res.parter"
_inherit = "res.partner"
def readname(self,jira_id):
query = """
SELECT name
FROM res.partner
WHERE jira_id = {0}
""".format(jira_id)
self.env.cr.execute(query)
result = [(row[0], row[0]) for row in self.env.cr.fetchall()]
_logger.info(str(result))
return result
def parse(self,data):
#load json data
R = json.loads(data)
Customer = R['issue']['fields']['customfield_10128']
CustomerId = R['issue']['fields']['customfield_10128']['id']
issue_url = R['issue']['self']
res = self.readname(CustomerId)
_logger.info(str(res))
#create dictionary/json callback object
json_response = {'fields':
{'customfield_10128':{'value': 'ISYS Group'}
}}
#json_response = Customer,CustomerId,issue_url
#Make call back request to Jira to update customer data
H = {'Content-Type':'application/json'}
req = requests.post('http://10.10.15.39:5000', data=json.dumps(json_response), headers=H)
return True
Я пытаюсь вызвать его из моего контроллера, как это:
t = callback.JiraParse()
t.parse(requestdata)
Где requestdata является объектом JSON, полученный на контроллер.
Все, что я получаю это
AttributeError: 'NoneType' object has no attribute 'parse'
Благодаря
У меня уже есть импорт в верхней части контроллера. Проблема не в том, что импорт работает нормально. Как и экземпляр класса. Только когда я пришел к вызову метода в классе, он не работает. –
Придется попробовать проверить первые варианты –