python - 我想将 res.partner 地址中的实际城市字段更改为 many2one 字段而不添加新字段
问题描述
我的代码看起来像:
# -*- 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 中添加视图之后,但我的要求是我需要更改实际字段而不添加新的旧字段:city = fields.char 新的应该看起来像:city = fields.many2one
解决方案
您可以简单地覆盖定义,但它会破坏使用此字段的每个模型或视图,您可以将其设为函数字段:
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)
在您的表单视图中,您应该使用 addcity_id
和 hide city
,其余部分保持平静......
编辑
您可以使用res_partner_city
Odoo 附带的新插件。
推荐阅读
- python - 使用 Prometheus 中的指标监控批处理作业的状态
- docusignapi - [docusign]嵌入签名无法正常显示签名页面
- c++ - C++ 删除 [] 运算符
- python-3.x - 使用 psutil 和 ethtool 测量网络使用情况的结果
- electron - 使用电子生成器访问 extraFiles 或 extraResources 的正确方法是什么?
- python - 如何使用熊猫忽略具有特定值的文件
- graphql - 需要澄清 GraphQL 全局对象识别规范中描述的根查询类型上的“节点”字段
- c++ - 如何知道符号来自的确切文件
- node.js - 从带有附件的 Gmail 中读取邮件 - Node.js
- python - 有没有人尝试在 Apache Superset 中实现多租户