Ir al contenido
Menú
Se marcó esta pregunta
1 Responder
8068 Vistas

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
Descartar
Mejor respuesta

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
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
1
mar 15
4781
1
mar 15
9442
1
ene 17
6458
2
mar 15
6326
0
mar 15
7094