0

私はerpを開くのが初めてで、マスターと詳細の2つのテーブルを持っています。詳細テーブルの外部キーとしてマスターのIDを使用したいです。どうすればこれを達成できますか? どなたか助けてください!!

私のコードは

from osv import osv,fields
class wlan_master(osv.osv):
    _name = 'wlan_master'
    _columns = {
        'AP_name'       :fields.char(),
        'description'   :fields.char(),
        'ip_address'    :fields.char(),
    }
class wlan_details(osv.osv):
    _name = 'wlan_details'
    _columns = {
        'wireless_workmode'     :fields.char(),
        'enable_wireless'       :fields.char(),
        'ssid'                  :fields.char(),
        'channel'               :fields.char(),
        'wireless_mode'         :fields.char(),
        'channel_bandwidth'     :fields.char(),
        'rate'                  :fields.char(),
        'broadcast_ssid'        :fields.char(),
        'client_isolation'      :fields.char(),
        'wmm_announcement'      :fields.char(),
        'fragement_threshold'   :fields.char(),
        'rts'                   :fields.char(),
        'dtim_gap'              :fields.char(),
        'beacon_gap'            :fields.char(),
        'preamble_type'         :fields.char(),
        'encryption_mode'       :fields.char(),
        'filter_mode'           :fields.char(),
    }
4

1 に答える 1

0

テーブル間をリンクするには、one2many と many2one を使用します。テーブルに detail_ids と master_id を追加しました。これをチェックしてください。

from osv import osv,fields
class wlan_master(osv.osv):
    _name = 'wlan_master'
    _columns = {
        'AP_name'       :fields.char(),
        'description'   :fields.char(),
        'ip_address'    :fields.char(),
        'detail_ids': fields.one2many('wlan_details','master_id','Details')
    }


class wlan_details(osv.osv):
    _name = 'wlan_details'
    _columns = {
        'master_id': fields.many2one('wlan_master','Master'),
        'wireless_workmode'     :fields.char(),
        'enable_wireless'       :fields.char(),
        'ssid'                  :fields.char(),
        'channel'               :fields.char(),
        'wireless_mode'         :fields.char(),
        'channel_bandwidth'     :fields.char(),
        'rate'                  :fields.char(),
        'broadcast_ssid'        :fields.char(),
        'client_isolation'      :fields.char(),
        'wmm_announcement'      :fields.char(),
        'fragement_threshold'   :fields.char(),
        'rts'                   :fields.char(),
        'dtim_gap'              :fields.char(),
        'beacon_gap'            :fields.char(),
        'preamble_type'         :fields.char(),
        'encryption_mode'       :fields.char(),
        'filter_mode'           :fields.char(),
    }
于 2013-11-11T05:18:18.783 に答える