This question has been flagged
1 Reply
6742 Views

Hello,

I'm creating a module to manage the no-compliance. To do that a create the object named 'incident' like that :

class non_compliance_incident(osv.osv): _name = "non.compliance.incident" _description = "Incident"

_columns = {
    'date': fields.datetime('Date de création', readonly=True),
    'product_id': fields.many2one('product.product', 'Produit', required=True),
    'partner_id': fields.many2one('res.partner', 'Fournisseur', required=True),
    'reference':fields.char('Référence',size=64),
    'description':fields.char('Description de la non-conformité',size=128),
    'user_id': fields.many2one('res.users', 'Crée par', readonly=True),
    'state': fields.selection([('draft','Brouillon'),('confirmed','En cours'),('done','Soldée'),('cancel','Annulée')],'Statut', size=32),
    'quantity': fields.integer('Quantité'),
}
_defaults = {
    'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
    'user_id': lambda object,cr,uid,context: uid,
    'state': lambda * a:'draft',
}

nctm_incident()

I want to use the id of the object to define the default value of the field 'description'. For exemple :

id = 1 => description IS "NC1" id = 9852 => description IS "NC9852"

Please let me know how to define the default value of the field "description", so my question :

'description': lambda ???

Thank you very much,

CGS

Avatar
Discard
Best Answer

You can't use ID as parametr for calculation default value. Because when you open form for create new records, ID yet not assigned, so at this moment it undefined. You can redefine create method and calculate your "description" base on new ID, that you receive after creating record. But while you don't save record, "description" will uncalculated.

If you need unique identificator, then better use builtin model - sequence.

Avatar
Discard