Я пытаюсь создать поле функции, которое получит текущий тип членства члена и сохранит его в новом поле res.partner. Однако этот код не вызывается, когда я создаю или редактирую членство члена. Но если я удалю атрибут store, функциональное поле работает так, как ожидалось. Обратите внимание, что я повторно использую модуль членства openerp и теперь использую odoo8. Я прикрепляю код, пожалуйста, дайте мне знать, где я ошибаюсь. Мне нужно, чтобы этот метод назывался atleast, когда я использую атрибут store. Я неправильно использую атрибут магазина:Open ERP- Функциональное поле, которое не получает вызов из кода
from openerp.osv import osv, fields
class partner_member(osv.Model):
'''Partner'''
_inherit = 'res.partner'
def _get_membership_type(self,cr,uid,ids,context=None):
member_line_obj = self.pool.get('membership.membership_line')
partner_list = []
for line in member_line_obj.browse(cr, uid, ids, context=context):
if line.state == 'paid':
partner_list.append(line.partner.id)
return partner_list
def _current_membership(self, cr, uid, ids, field_name= None, arg=False, context=None):
res_obj = self.pool.get('res.partner')
res_data_obj = res_obj.browse(cr, uid, ids, context=context)
res=dict()
for member in res_data_obj:
if member.member_lines:
for lines in member.member_lines:
if (lines.state == 'paid'):
res[member.id] = lines.membership_id.name_template
break
else:
res[member.id] = 'None'
else:
res[member.id] = 'None'
return res
_columns = {
'current_membership':
fields.function(_current_membership,type='char',
string='Current Membership Type',
store = {
'membership.membership_line':
(_get_membership_type, ['state'], 10)
},
help="Shows the current membership of a user"),
}
Но Atleast, моя функция должна быть вызвана при отладке. Я поставил там отладочную точку, но при отладке функция никогда не вызывается. Я определенно попробую то, что вы предложили, и может быть, мой код неверен. Но я все еще удивляюсь, что мешает тому, чтобы метод вызывался. – user3402084
Я пробовал ваш подход. Метод все еще не вызван. Атрибут store просто не работает независимо от того, что я делаю. Я попытался перезагрузить сервер и повторно установить модуль несколько раз. Я также несколько раз удалял базу данных и создавал новые, но для меня ничего не работает. Это действительно расстраивает. – user3402084