使用字段作为键,并且每条记录必须唯一,以便浏览表格(Openerp)。

2024-05-06 14:26:51 发布

您现在位置:Python中文网/ 问答频道 /正文

请在一个视图窗体中我希望使用一个字段作为键,并且它必须是唯一的,以便每个记录使用它来浏览其他视图中的表,如何做到这一点

    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'),
    }

Tags: columnsname视图idfields记录order窗体
1条回答
网友
1楼 · 发布于 2024-05-06 14:26:51

在您的例子中,您将通过设置_sql_constraints变量使NumOffre唯一。其中,您还可以定义当用户尝试添加重复条目时要显示的自定义消息。在

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方法,如write和{}

相关问题 更多 >