【问题标题】:Field not found after modifying mrp_production.py file odoo修改 mrp_production.py 文件 odoo 后找不到字段
【发布时间】:2019-05-29 19:25:47
【问题描述】:

已创建报价,并已编写说明。因为这个产品是要生产的。将创建一个工单。

工单没有描述行,如下图所示。

因此,我修改以下文件 (mrp_production_views.xml) 以添加字段

第 111 行<field name="description" string="Description"/>

mrp_production.py

description = fields.one2many('sale.order.line', 'name', related='sale.order_id', readonly=True)

然后我得到这个错误。我确定问题出在上面的 python 语句中。

2019-01-03 07:49:16,463 13284 信息测试 werkzeug:127.0.0.1 - - [03/Jan/2019 07:49:16]“POST /longpolling/poll HTTP/1.1”500 - 2019-01-03 07:49:16,467 13284 错误测试 werkzeug:请求错误: Traceback(最近一次调用最后一次):文件“C:\ Program Files\Python37\lib\site-packages\werkzeug\serving.py",第 270 行,在 run_wsgi 执行(self.server.app)文件“C:\Program Files\Python37\lib\site-packages\werkzeug\serving.py”,第 258 行,在 执行 application_iter = app(environ, start_response) 文件“C:\Program Files (x86)\Odoo 11.0\server\odoo\service\server.py”,第 260 行,在应用程序中 在应用程序中返回 self.app(e, s) 文件“C:\Program Files (x86)\Odoo 11.0\server\odoo\service\wsgi_server.py”,第 166 行 返回 application_unproxied(environ, start_response) 文件 "C:\Program Files (x86)\Odoo 11.0\server\odoo\service\wsgi_server.py", 第 154 行,在 application_unproxied 结果 = handler(environ, start_response) 文件“C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py”,第 1319 行,在 call return self.dispatch(environ, start_response) File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 1474, in dispatch odoo.registry(db).check_signaling() 文件“C:\Program Files (x86)\Odoo 11.0\server\odoo__init__.py”,第 76 行,在注册表中 返回 modules.registry.Registry(database_name) 文件“C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\registry.py”,第 61 行,在 返回 cls.new(db_name) 文件“C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\registry.py”,第 85 行,在新 odoo.modules.load_modules(registry._db, force_demo, status, update_module) 文件“C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\loading.py",第 376 行,在 load_modules 力、状态、报告、loaded_modules、update_module、models_to_check)文件“C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\loading.py",第 274 行,在 load_marked_modules perform_checks=perform_checks,models_to_check=models_to_check 文件“C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\loading.py",第 152 行,在 load_module_graph registry.setup_models(cr) 文件“C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\registry.py”,第 277 行,在 setup_models model._setup_fields() 文件“C:\Program Files (x86)\Odoo 11.0\server\odoo\models.py”,第 2425 行,在 _setup_fields field.setup_full(self) 文件“C:\Program Files (x86)\Odoo 11.0\server\odoo\fields.py”,第 471 行,在 setup_full self._setup_related_full(model) 文件“C:\Program Files (x86)\Odoo 11.0\server\odoo\fields.py”,第 508 行,在 _setup_related_full field = target._fields[name] KeyError: 'manufacturing_lead'

【问题讨论】:

    标签: python odoo


    【解决方案1】:

    试试这个:

    description = fields.one2many(related='sale.order_id', readonly=True)

    【讨论】:

    • 不起作用.. 文件“C:\Program Files (x86)\Odoo 11.0\server\odoo\modules\registry.py”,第 250 行,加载模型 = cls._build_model(self , cr) 文件“C:\Program Files (x86)\Odoo 11.0\server\odoo\models.py”,第 428 行,在 _build_model raise TypeError("Model %r does not exist in registry." % name) TypeError:模型“mrp.production”在注册表中不存在。
    【解决方案2】:

    在 sale_order_line 中创建一个 many2one 字段,如下所示

    mrp_id = fields.Many2one('mrp.production',string="MRP")
    

    在mrp_production中创建描述字段如下:

    description = fields.one2many('sale.order.line', 'mrp_id', related='sale.order_line', readonly=True)
    

    请确保 mrp_production 中应有销售字段(Many2one),以便您可以调用 sale.order_line

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-24
      • 2022-10-16
      相关资源
      最近更新 更多