2016-04-22 6 views
0

:今openerpのmany2oneフィールドに依存するattrsの使い方は?私は2つのクラス持っ

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

を、私は 'cost' でhr_holidaysのファイル.xmlファイルに書き込むには、is_cost

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

属性requiredを持っている。しかしOdooはis_costを理解していないし、エラー。 私はあなたの助けを得ることを望みます。どうもありがとうございました。 よろしくお願いします。

答えて

0

hr.holidaysでis_costを使用してください。

  1. holiday_status_id'hr.holidays'に関係するフィールド is_costを作成します。
  2. このフィールドを表示で定義します。
  3. attrsで使用できます。

ご希望の場合は、こちらをご覧ください。

+0

ありがとうございました。しかし、私はそれを使用していたが、フォームフィールドに直接filedsコストが入力されるという問題が発生しました。 relatedを使用している場合、Saveを押した後、新しい値がロードされます。したがって、コストを入力するには、編集をクリックしてそこに値を追加する必要があります。ユーザーにとって非常に不便です。 私は他の方法は知らないので、あなたの助けを期待してください – nhatvy709

+0

申し訳ありませんが、あなたが直面しているシナリオを理解することができません: "関連する場合、保存を押した後、新しい値がロードされます。私たちはこれまでに行ったコード(.pyと.xml)で新しい質問を投稿します。修正しようとしています – prakash

+0

私にアイデアを与えていただきありがとうございます。私はあなたの問題を解決しました。 1. 'hr.holidays'に1つのフィールド 'is_cost'を作成します。このフィールドは表示されません。 2. def onchange_holiday_status_id(holiday_status_id)を書き込みます。値 'is_cost'を取得します。 3. nhatvy709