按钮上的 Odoo 单击打开弹出窗口 window 和其中的文本
Odoo on button click open popup window and text in it
我正在使用带有取消和重置按钮的 Odoo 工作流。我需要用户点击这些按钮可以添加一个原因。
为此,我找到了 sale_cancel_reason
应用程序。此处示例:
但我每次都需要写新的理由,而不是 select 从列表中。
我绑定了与 wizzard 的 many2one 关系,用户每次都可以在弹出 wizzard window:
上写原因
cancel_id = fields.Many2one('sale.order.cancel', string="Cancellation")
'sale.order.cancel'
- wizzard 对象
但是我得到了错误:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 177, in run_wsgi
execute(self.server.app)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 165, in execute
application_iter = app(environ, start_response)
File "/opt/odoo/openerp/service/server.py", line 245, in app
return self.app(e, s)
File "/opt/odoo/openerp/service/wsgi_server.py", line 184, in application
return application_unproxied(environ, start_response)
File "/opt/odoo/openerp/service/wsgi_server.py", line 170, in application_unproxied
result = handler(environ, start_response)
File "/opt/odoo/openerp/http.py", line 1488, in __call__
return self.dispatch(environ, start_response)
File "/opt/odoo/openerp/http.py", line 1462, in __call__
return self.app(environ, start_wrapped)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/wsgi.py", line 588, in __call__
return self.app(environ, start_response)
File "/opt/odoo/openerp/http.py", line 1637, in dispatch
ir_http = request.registry['ir.http']
File "/opt/odoo/openerp/http.py", line 360, in registry
return openerp.modules.registry.RegistryManager.get(self.db) if self.db else None
File "/opt/odoo/openerp/modules/registry.py", line 354, in get
update_module)
File "/opt/odoo/openerp/modules/registry.py", line 385, in new
openerp.modules.load_modules(registry._db, force_demo, status, update_module)
File "/opt/odoo/openerp/modules/loading.py", line 334, in load_modules
force, status, report, loaded_modules, update_module)
File "/opt/odoo/openerp/modules/loading.py", line 237, in load_marked_modules
loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
File "/opt/odoo/openerp/modules/loading.py", line 137, in load_module_graph
init_module_models(cr, package.name, models)
File "/opt/odoo/openerp/modules/module.py", line 293, in init_module_models
result = obj._auto_init(cr, {'module': module_name})
File "/opt/odoo/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/opt/odoo/openerp/models.py", line 2625, in _auto_init
self._m2o_fix_foreign_key(cr, self._table, k, dest_model, f.ondelete)
File "/opt/odoo/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/opt/odoo/openerp/models.py", line 2384, in _m2o_fix_foreign_key
self._m2o_add_foreign_key_checked(source_field, dest_model, ondelete)
File "/opt/odoo/openerp/models.py", line 2324, in _m2o_add_foreign_key_checked
'Many2One relationships from non-transient Model to TransientModel are forbidden'
AssertionError: Many2One relationships from non-transient Model to TransientModel are forbidden
据我所知,我不能将 Many2one 关系与 wizzard 对象一起使用。但是我还能如何制作带有可写原因字段的弹出窗口 window 呢?有什么办法吗?
编辑 sale_cancel_reason\wizard\cancel_reason_view.xml
文件并更改:
<field name="reason_id" widget="selection"/>
到
<field name="reason_id"/>
更新:
要在每次单击取消按钮时创建一个新原因,请使用此 sale_cancel_reason
changed reason_id
(Many2one) to reason
(Char)
我正在使用带有取消和重置按钮的 Odoo 工作流。我需要用户点击这些按钮可以添加一个原因。
为此,我找到了 sale_cancel_reason
应用程序。此处示例:
但我每次都需要写新的理由,而不是 select 从列表中。 我绑定了与 wizzard 的 many2one 关系,用户每次都可以在弹出 wizzard window:
上写原因cancel_id = fields.Many2one('sale.order.cancel', string="Cancellation")
'sale.order.cancel'
- wizzard 对象
但是我得到了错误:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 177, in run_wsgi
execute(self.server.app)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 165, in execute
application_iter = app(environ, start_response)
File "/opt/odoo/openerp/service/server.py", line 245, in app
return self.app(e, s)
File "/opt/odoo/openerp/service/wsgi_server.py", line 184, in application
return application_unproxied(environ, start_response)
File "/opt/odoo/openerp/service/wsgi_server.py", line 170, in application_unproxied
result = handler(environ, start_response)
File "/opt/odoo/openerp/http.py", line 1488, in __call__
return self.dispatch(environ, start_response)
File "/opt/odoo/openerp/http.py", line 1462, in __call__
return self.app(environ, start_wrapped)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/wsgi.py", line 588, in __call__
return self.app(environ, start_response)
File "/opt/odoo/openerp/http.py", line 1637, in dispatch
ir_http = request.registry['ir.http']
File "/opt/odoo/openerp/http.py", line 360, in registry
return openerp.modules.registry.RegistryManager.get(self.db) if self.db else None
File "/opt/odoo/openerp/modules/registry.py", line 354, in get
update_module)
File "/opt/odoo/openerp/modules/registry.py", line 385, in new
openerp.modules.load_modules(registry._db, force_demo, status, update_module)
File "/opt/odoo/openerp/modules/loading.py", line 334, in load_modules
force, status, report, loaded_modules, update_module)
File "/opt/odoo/openerp/modules/loading.py", line 237, in load_marked_modules
loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
File "/opt/odoo/openerp/modules/loading.py", line 137, in load_module_graph
init_module_models(cr, package.name, models)
File "/opt/odoo/openerp/modules/module.py", line 293, in init_module_models
result = obj._auto_init(cr, {'module': module_name})
File "/opt/odoo/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/opt/odoo/openerp/models.py", line 2625, in _auto_init
self._m2o_fix_foreign_key(cr, self._table, k, dest_model, f.ondelete)
File "/opt/odoo/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/opt/odoo/openerp/models.py", line 2384, in _m2o_fix_foreign_key
self._m2o_add_foreign_key_checked(source_field, dest_model, ondelete)
File "/opt/odoo/openerp/models.py", line 2324, in _m2o_add_foreign_key_checked
'Many2One relationships from non-transient Model to TransientModel are forbidden'
AssertionError: Many2One relationships from non-transient Model to TransientModel are forbidden
据我所知,我不能将 Many2one 关系与 wizzard 对象一起使用。但是我还能如何制作带有可写原因字段的弹出窗口 window 呢?有什么办法吗?
编辑 sale_cancel_reason\wizard\cancel_reason_view.xml
文件并更改:
<field name="reason_id" widget="selection"/>
到
<field name="reason_id"/>
更新:
要在每次单击取消按钮时创建一个新原因,请使用此 sale_cancel_reason
changed
reason_id
(Many2one) toreason
(Char)