2016-04-21 22 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

相關問題