2016-04-22 3 views
0

Ich habe zwei Klasse:Wie benutzt man attrs benötigt abhängig von einem Feld many2one in openerp?

class hr_holidays(osv.osv): 
    _inherit = 'hr.holidays' 
    _columns = { 
     'holiday_status_id': fields.many2one("hr.holidays.status", "Loại nghỉ", required=True,readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}, track_visibility='onchange'), 
     'cost': fields.float('Cost', track_visibility='onchange'), 
     } 
class hr_holidays_status(osv.osv): 
    _name = "hr.holidays.status" 
    _columns = { 
     'is_cost': fields.boolean('Cost'), 
     } 

Jetzt schreibe ich in der Datei .xml von hr_holidays mit 'cost' Attribut haben required wenn is_cost von hr.holidays.status = True

<field name="cost" attrs="{'required':[('is_cost','=',True)]}"/> 

Aber Odoo nicht verstehen is_cost und Error. Ich hoffe, deine Hilfe zu bekommen. Vielen Dank. Mit freundlichen Grüßen

Antwort

0

für die Verwendung von is_cost in hr.holidays.

  1. Erstellen Sie ein Feld is_cost im 'hr.holidays' mit dem holiday_status_id beziehen.
  2. Definieren Sie dieses Feld in Sicht.
  3. dann können Sie in attrs verwenden.

Hoffe, das kann Ihnen helfen.

+0

Vielen Dank. Aber ich benutze es und habe ein Problem tritt auf, wenn Dateikosten direkt in die Formularfelder eingegeben wird. Wenn Sie verwandten verwenden, nachdem Sie auf Speichern geklickt haben, wird der neue Wert geladen. Um die Kosten einzugeben, müssen Sie auf Bearbeiten klicken, um einen Wert hinzuzufügen. Sehr unbequem für den Benutzer. Ich weiß nicht anders, also erwarten Sie Hilfe von Ihnen – nhatvy709

+0

Entschuldigung, aber ich kann nicht verstehen, das Szenario Sie konfrontiert sind: "Wenn Sie verwandte, nach Drücken von Speichern, wird der neue Wert geladen. Also, geben Sie die Kosten ein , müssen wir auf Bearbeiten klicken, um einen Wert dort hinzuzufügen ", einfach eine neue Frage mit dem Code (.py und .xml), die Sie bisher getan haben, posten, werde ich versuchen, es zu beheben – prakash

+0

Vielen Dank für die mir eine Idee. Ich habe deine Probleme gelöst. 1. Erstellen Sie 1 Felder 'is_cost' in 'hr.holidays'. Diese Felder sind unsichtbar. 2. Schreiben Sie def auf change_holiday_status_id (holiday_status_id). Erhalte den Wert 'is_cost'. 3. nhatvy709

Verwandte Themen