【问题标题】:How to change the field name of a model in Odoo如何在 Odoo 中更改模型的字段名称
【发布时间】:2026-01-20 02:05:02
【问题描述】:

我编写了一个包含“日期”字段(表示任务的截止日期)的任务模型,但是,我决定最好有一个初始日期和截止日期,我该如何更新我的模型日期中的数据会迁移到截止日期吗?

这是我的:

_columns = {
    'title': fields.char('Title', size=128, required=True),
    'date': fields.date('Date', required=True),
    'note': fields.text('Notes')
        }

这就是我想要的:

_columns = {
    'title': fields.char('Title', size=128, required=True),
    'dateInitial': fields.date('Initial Date', required=True),
    'dateDeadline': fields.date('Deadline Date', required=True),
    'note': fields.text('Notes')
}

【问题讨论】:

    标签: model field openerp


    【解决方案1】:

    尝试以下步骤:

    • 添加两个新字段 'dateInitial'dateDeadline 以及 “日期”字段。

    • 现在更新您的模块,以便将这两个字段包含到 数据库表。

    • 现在进入数据库环境,并尝试执行以下查询。一世 假设您的表名是“任务”

      更新任务集 dateDeadline=date;

    • 这会调出'date'字段的所有数据到 'dateDeadline'

    • 现在,尝试执行以下查询以从 '日期'字段:

      更新任务集日期=null;

    • 现在尝试执行以下查询以从数据库中删除列 'date'

      alter table task drop column date;

    • 现在,从“.py”文件中删除该字段并再次更新模块。

    希望这会有所帮助!!。

    【讨论】:

      【解决方案2】:

      根据我的意见,不需要为每个内联日期和截止日期添加两个单独的日期。

      您可以按照以下方式将现有模型字段 Date 中的新字符串添加到 Deadline Date 并为初始日期添加一个新字段。

      _columns = {
          'title': fields.char('Title', size=128, required=True),
          'date': fields.date(string='Deadline Date', required=True),
          'inline_date:fields.date(string='Initial Date'),
          'note': fields.text('Notes')
              }
      

      在 Odoo 新 API 8.0 中,每个字段的处理方式: 当我们将新字段定义到新模型或某个现有模型中时,当我们模型中的现有字段中没有定义默认字段字符串时,它作为您的视图(Odoo 视图)字段字符串的字段名称工作。

      如果我们使用字符串属性添加新字符串 我们令人兴奋的字段然后它将被覆盖该字段名称并且您的字段字符串属性将直接应用于我们的视图。

      希望我的回答对你有帮助:)

      【讨论】:

        【解决方案3】:

        这里有以下步骤的另一种方式

        1)转到技术设置 --> 视图并删除相应的视图,

        2)在py和xml中重命名你的字段

        3)升级你的模块,它会工作

        【讨论】:

          最近更新 更多