İçereği Atla
Menü
Bu soru işaretlendi
1 Cevapla
8311 Görünümler

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
Vazgeç
En İyi Yanıt

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
Vazgeç
İlgili Gönderiler Cevaplar Görünümler Aktivite
1
Mar 15
4980
1
Mar 15
9664
1
Oca 17
6653
2
Mar 15
6544
0
Mar 15
7297