我想改变城市的实际情况资源合作伙伴地址到多个字段而不添加新字段

2024-04-16 16:34:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码看起来像:

# -*- encoding: utf-8 -*-

from openerp import models,fields, api

class ResPartner(models.Model):
    _name = 'res.partner'
    _inherit = 'res.partner'

    city_id = fields.Many2one('res.city','Ville',stored = True 
                               ,ondelete='restrict')

class ResCity(models.Model):
    _name = "res.city"
    _description = "Ville"

    name = fields.Char(u"Nom",required = True)
    state_id = fields.Many2one("res.country.state", 'Zone',ondelete='restrict')

因此,在我用xml添加视图之后,我的请求是需要更改实际字段而不添加新字段 旧:城市=字段.char新的应该是这样的:city=fields.ManyOne公司你知道吗


Tags: nameidtruecityfieldspartnermodelmodels
2条回答

只需重写旧API中定义的city字段:

from openerp import models,fields, api
from openerp.osv import fields as ofields

class ResPartner(models.Model):
    _inherit = 'res.partner'

    _columns = {
        'city': ofields.many2one('res.city', 'Ville', ondelete='restrict'),
    }

请记住,许多视图将不再有效,例如合作伙伴看板视图。你知道吗

您可以简单地重写定义,但它会破坏使用此字段的每个模型或视图,相反,您可以将其设置为函数字段:

class ResPartner(models.Model):
    _name = 'res.partner'
    _inherit = 'res.partner'

    city_id = fields.Many2one('res.city','Ville' 
                               ,ondelete='restrict')
    @api.depends('city_id')
    @api.multi
    def set_city(self):
         self.city=self.city_id.name

    city = fields.Char(compute=set_city, store=True)

在窗体视图中,应该使用add city_id和hide city,其余的保持安静。。。你知道吗

编辑 您可以使用Odoo附带的新插件res_partner_city。你知道吗

相关问题 更多 >