2014-04-21 5 views
1

У меня проблема с соединением поля many2one в другое многое поле. Im получает числа, как 1,2,3 (я думаю, его номер записи), а не значение поля в раскрывающемся списке.many2one поле, не отображающее значения полей

У меня есть 3 класса Код активности, данные о деятельности и краткое описание деятельности.

Сводка операций имеет поле many2one, называемое «activity_code», которое относится к данным активности и данным о деятельности, имеет поле many2one, которое относится к коду активности. Я могу видеть значения полей в выпадающем списке в форме данных о деятельности, он отлично работает, но im не может просмотреть его в форме сводной информации. Я получаю цифры с одной цифрой

Может ли кто-нибудь сказать мне, почему это происходит, и как я могу исправить это, чтобы показать предполагаемое значение вместо чисел? Ниже мой код.

код активности

class activity_yearcode(osv.osv): 
_name = "budget.activity_code" 
_description = "Activity Year Code" 
_rec_name = "activity_code" 
_columns = { 
    'activity_code' : fields.char("Activity Code", size=64, required=True), 
    'activity_name' : fields.char("Activity Name", size=128), 
    'act_status' : fields.selection([ 
       ('1', 'All'), 
       ('2', 'Active'), 
       ('3', 'Inactive'), 
       ], 'Status'), 
    } 
_sql_constraints = [ 
    ('activity_code_unique', 'UNIQUE(activity_code)', 'Each activity code is unique.'), 
] 

активность данные - работа тонких Резюме

class activity_data(osv.osv): 

_name = "management.activity_data" 
_description = "Activity Data" 
_rec_name = "activity_data_num" 
_columns = { 
    'activity_data_num' : fields.char('activity_data_num', size=16), 
    'activity_code' : fields.many2one("budget.activity_code","Activity Code",required=True), 
    'management_unit_code' : fields.many2one("budget.org_table","Management Unit Code", required=True), 
} 
_defaults = { 
    'activity_data_num': lambda self,cr,uid,context={}: self.pool.get('ir.sequence').get(cr, uid, 'management.activity_data'), 
} 
_sql_constraints = [ 
    ('activity_data_num', 'UNIQUE(activity_data_num)', 'Each activity_data_num is unique.'), 
] 

активности - В этой модели им получить один номер цифры в раскрывающемся списке Загруз.картин вместо значения поля в ' activity_code '.

class activity_summary(osv.osv): 
_name = "work.activity_summary" 
_description = "Activity Summary" 
_columns = { 
    'activity_code' : fields.many2one("management.activity_data", "Activity Code", ondelete= "no action", required=True), 
    'management_code' : fields.related("activity_code", "activity_data_num", "management_unit_code", type = "char", string = "Management code"), 
'region_id' : fields.char("Region ID", size=64, required=True), 
    'daily_prod' : fields.integer("Daily Prod"), 
    'deviation' : fields.integer("Deviation Level"), 

      } 

Пожалуйста, помогите .. Заранее благодарен.

ответ

1

попробуйте этот код,

class activity_summary(osv.osv): 
    _name = "work.activity_summary" 
    _description = "Activity Summary" 
    _columns = { 
     'activity_code' : fields.many2one("budget.activity_code", "Activity Code", ondelete= "no action", required=True), 
     'management_code' : fields.related("activity_code", "activity_data_num", "management_unit_code", type = "char", string = "Management code"), 
     'region_id' : fields.char("Region ID", size=64, required=True), 
     'daily_prod' : fields.integer("Daily Prod"), 
     'deviation' : fields.integer("Deviation Level"), 
    } 

И ваш другой код ОК. Попробуйте этот класс, если у вас есть какие-либо проблемы, чтобы получить значения, просто спросите.

Надеюсь, это поможет вам получить ценность.

+0

, привет, извините, но нет никаких изменений, – user1930115

+0

Имя поля 'class activity_summary'' activity_code' находится в связи с 'management.activity_data', а' management.activity_data' имеет '_rec_name = 'activity_data_num'' в вашем случае. '_rec_name' должно быть' 'activity_code'', как я дал в ответ, а другое решение, как вы можете изменить отношение с именем' class activity_summary', - '' activity_code ': fields.many2one ("budget.activity_code", "Activity Code ", ondelete =" no action ", required = True),' –

+0

Я изменил _rec_name на 'activity_code', и его привязка корректно и нормально работает, но когда я запустил его, я не вижу код активности, который я создал ранее, например, «AC001» в полях ниже, я вижу только одну цифру, например 3, с другой стороны, если я изменю отношения, как вы сказали, «activity_code»: fields.many2one («budget.activity_code», Activity Code ", ondelete =" no action ", required = True), он отлично работает. спасибо и высоко оценили – user1930115