0
_coloumns={'state_id': fields.many2one("res.country.state", 'State',required=True),
         'country_id': fields.many2one('res.country', 'Country',required=True),
       }  #  in my python file

# my xml file contains this code
<group col="4" colspan="4">
<field name="permanent_address" colspan="4"/>
<field name="birthday"/>
<!--<field name="department_id" on_change="onchange_department_id(department_id)"/>-->
<field name="unit"/>
<!--<field name="vertical_id"/>-->
<field name="gender"/>
<field name="city1"/>
<field name="state_id"/>
<field name="country_id"/>
<field name="mobile"/>
<field name="email"/>
<field name="blood_group"/>
<field name="pan_no"/>
<field name="marital"/>
<field name="anniversary_date" attrs="{'invisible':[('marital','!=','married')]}"/>
</group>

次のような出力が必要です:「フィールドに州名(maharastra)を入力すると、国は自動的に国名(インド)で埋められます」ここにコードを入力してください

4

1 に答える 1

1

通常のパターンは次のようになります。

  1. state_id フィールドに on change メソッドを追加します

    on_change="state_id_change(state_id, context)"
    
  2. on change メソッドをモデルに追加します。

    def state_id_change(self, cr, uid, ids, state_id, context = None):
        values = {'country_id': False}
    
        if state_id:
            state = self.pool.get('state_model').browse(cr, uid, state_id, context = context)
            values['country_id'] = state.country_id.id
    
        return {'value': values}
    

州をクリアすると国もクリアされますが、州を選択すると、関連する国 ID が検索されて返されることに注意してください。on_change辞書を返す限り、必要なものを何でも入れることができます。

これは OpenERP 7 を想定しています。6 を使用している場合は、context引数を XMLon_change属性から除外します。

最後にもう 1 つ、モデルにタイプミスがあり、_columnsスペルが間違っています。

于 2014-07-14T21:23:21.663 に答える