many2one字段未显示字段值

时间:2014-04-21 08:23:07

标签: python postgresql openerp many-to-one openerp-7

我在将many2one字段链接到另一个many2one字段时遇到问题。我得到的数字如1,2,3(我认为它是记录号)而不是下拉列表中的字段值。

下面,我有3个类活动代码,活动数据和活动摘要。

活动摘要有一个名为' activity_code'的多字段字段。与活动数据和活动数据相关的字段有许多与活动代码相关的字段。我能够在活动数据表单的下拉列表中看到字段值,它工作正常,但我无法在活动摘要表单中查看它。我得到一位数字

任何人都可以告诉我为什么会发生这种情况以及如何修复它以显示预期值而不是数字?以下是我的代码。

活动代码

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 个答案:

答案 0 :(得分: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"),
    }

你的其他代码没问题。如果您有任何问题需要获取值,请尝试此课程。

希望这会帮助你获得价值。