2016-04-21 21 views
-1

请在视图形式我希望使用字段作为关键,它必须是唯一的每个记录使用它浏览表中的其他意见,该怎么办呢使用一个字段作为键,它必须是唯一的每个记录使用它来浏览表(Openerp)

class saisirsoum(osv.osv): 
     _name='saisir.soum' 

     _columns = { 
     'NumOffre' : fields.char('N° Offre'), # to be defined as key !! 
     'organisme_s' : fields.char('Organisme'), 
     'des_offre' : fields.char('Designation'), 
     'order_line' :fields.one2many('saisir.soumission.ligne','order_id','soumission_id'), 
     'observation_d' : fields.text('Observation'), 
    } 
+0

我真的不明白你的问题......你想获取一个字段的唯一ID(在一个视图)上提交然后用它来搜索? – danidee

+0

是使用NumOffre作为密钥exacte – khelifa

回答

0

在你的情况,你会做NumOffre唯一这样通过设置_sql_constraints变量。您也可以在用户尝试添加重复条目时定义要显示的自定义消息。

class saisirsoum(osv.osv): 

    _name='saisir.soum' 

    _sql_constraints = [ 
    ('NumOffre', 'unique(NumOffre)', 'NumOffre already exists'), 
    ] 

    _columns = { 
    'NumOffre' : fields.char('N° Offre'), # to be defined as key !! 
    'organisme_s' : fields.char('Organisme'), 
    'des_offre' : fields.char('Designation'), 
    'order_line' :fields.one2many('saisir.soumission.ligne','order_id','soumission_id'), 
    'observation_d' : fields.text('Observation'), 
    } 


    def create(self, cr, uid, vals, context=None): # when the record is about to created 
     NumOffre = vals.get('NumOffre') #get NumOffre from the form 
     if NumOffre: 
      pass # you can do something with it e.g searching 

     return super(saisirsoum, self).create(cr, uid, vals, context=context) # finally call the create method from the super class and create the record after you're done 

您也可以覆盖其他的CRUD方法,如writeunlink以同样的方式

+0

我编辑了我的答案。确保你的数据库中没有重复的'NumOffre'。如果你有删除它们,然后升级模块和odoo应使你的领域独特 – danidee

+0

谢谢danidee – khelifa

+0

它仍然接受两个记录相同的名称(NumOffre)!!!!!! – khelifa

相关问题