我刚刚创建了新的自定义模块,但我希望在模块中显示表单视图。
我使用脚手架的方法来拖拽模块所需的所有文件,但是当我尝试影响文件view.xml以便我可以反映我已经包含的字段时它给了我一个错误,我不知道如何解决它。
这是我对 view.xml 的代码:
<odoo>
<data>
<!-- explicit list view definition -->
<record model="ir.ui.view" id="secondmodule.list">
<field name="name">secondmodule list</field>
<field name="model">second.module</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="value"/>
<field name="value2"/>
</tree>
</field>
</record>
<!-- actions opening views on models -->
<record model="ir.actions.act_window" id="secondmodule.action_window">
<field name="name">secondmodule window</field>
<field name="res_model">second.module</field>
<field name="view_mode">tree,form</field>
</record>
<!-- server action to the one above -->
<record model="ir.actions.server" id="secondmodule.action_server">
<field name="name">secondmodule server</field>
<field name="model_id" ref="model_secondmodule_secondmodule"/>
<field name="state">code</field>
<field name="code">
action = {
"type": "ir.actions.act_window",
"view_mode": "tree,form",
"res_model": model._name,
}
</field>
</record>
<!-- Top menu item -->
<menuitem name="secondmodule" id="secondmodule.menu_root"/>
<!-- menu categories -->
<menuitem name="Part 1" id="secondmodule.menu_1" parent="secondmodule.menu_root"/>
<menuitem name="Part 2" id="secondmodule.menu_2" parent="secondmodule.menu_root"/>
<!-- actions -->
<menuitem name="List" id="secondmodule.menu_1_list" parent="secondmodule.menu_1"
action="secondmodule.action_window"/>
<menuitem name="Server to list" id="secondmodule" parent="secondmodule.menu_2"
action="secondmodule.action_server"/>
</data>
</odoo>
这里写的所有代码都来自预置的脚手架方法
现在这是我从 models.py 文件中获得的代码:
from odoo import models, fields,api
class secondmodule(models.Model):
_name = 'second.module'
_description = 'This is the Second Module'
name = fields.Char(string="name", required=True)
edad = fields.Integer(string="age")
life_goal = fields.Text(string="Wh?")
favorite_thing = fields.Char(string="Que le gusta hacer?")
end_date = fields.Date(string="Ultima fecha de felicidad")
value = fields.Date(string="value")
value2 = fields.Date(string="value2")
So everything looks cool until now, and then this error comes up when I try to upgrade the model in the apps section:
Traceback (most recent call last):
File "C:\odooo\odoo\odoo\tools\cache.py", line 85, in lookup
r = d[key]
File "C:\odooo\odoo\odoo\tools\func.py", line 71, in wrapper
return func(self, *args, **kwargs)
File "C:\odooo\odoo\odoo\tools\lru.py", line 34, in __getitem__
a = self.d[obj]
KeyError: ('ir.model.data', <function IrModelData._xmlid_lookup at 0x000001CAEB7EE0D0>, 'secondmodule.model_secondmodule_secondmodule')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\odooo\odoo\odoo\tools\convert.py", line 680, in _tag_root
f(rec)
File "C:\odooo\odoo\odoo\tools\convert.py", line 567, in _tag_record
f_val = self.id_get(f_ref)
File "C:\odooo\odoo\odoo\tools\convert.py", line 663, in id_get
res = self.model_id_get(id_str, raise_if_not_found)
File "C:\odooo\odoo\odoo\tools\convert.py", line 669, in model_id_get
return self.env['ir.model.data']._xmlid_to_res_model_res_id(id_str, raise_if_not_found=raise_if_not_found)
File "C:\odooo\odoo\odoo\addons\base\models\ir_model.py", line 1935, in _xmlid_to_res_model_res_id
return self._xmlid_lookup(xmlid)[1:3]
File "<decorator-gen-35>", line 2, in _xmlid_lookup
File "C:\odooo\odoo\odoo\tools\cache.py", line 90, in lookup
value = d[key] = self.method(*args, **kwargs)
File "C:\odooo\odoo\odoo\addons\base\models\ir_model.py", line 1928, in _xmlid_lookup
raise ValueError('External ID not found in the system: %s' % xmlid)
ValueError: External ID not found in the system: secondmodule.model_secondmodule_secondmodule
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\odooo\odoo\odoo\addons\base\models\ir_http.py", line 237, in _dispatch
result = request.dispatch()
File "C:\odooo\odoo\odoo\http.py", line 688, in dispatch
result = self._call_function(**self.params)
File "C:\odooo\odoo\odoo\http.py", line 360, in _call_function
return checked_call(self.db, *args, **kwargs)
File "C:\odooo\odoo\odoo\service\model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "C:\odooo\odoo\odoo\http.py", line 349, in checked_call
result = self.endpoint(*a, **kw)
File "C:\odooo\odoo\odoo\http.py", line 917, in __call__
return self.method(*args, **kw)
File "C:\odooo\odoo\odoo\http.py", line 536, in response_wrap
response = f(*args, **kw)
File "c:\odooo\odoo\addons\web\controllers\main.py", line 1352, in call_button
action = self._call_kw(model, method, args, kwargs)
File "c:\odooo\odoo\addons\web\controllers\main.py", line 1340, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "C:\odooo\odoo\odoo\api.py", line 464, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "C:\odooo\odoo\odoo\api.py", line 451, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "<decorator-gen-80>", line 2, in button_immediate_upgrade
File "C:\odooo\odoo\odoo\addons\base\models\ir_module.py", line 74, in check_and_log
return method(self, *args, **kwargs)
File "C:\odooo\odoo\odoo\addons\base\models\ir_module.py", line 662, in button_immediate_upgrade
return self._button_immediate_function(type(self).button_upgrade)
File "C:\odooo\odoo\odoo\addons\base\models\ir_module.py", line 600, in _button_immediate_function
registry = modules.registry.Registry.new(self._cr.dbname, update_module=True)
File "C:\odooo\odoo\odoo\modules\registry.py", line 87, in new
odoo.modules.load_modules(registry, force_demo, status, update_module)
File "C:\odooo\odoo\odoo\modules\loading.py", line 470, in load_modules
processed_modules += load_marked_modules(cr, graph,
File "C:\odooo\odoo\odoo\modules\loading.py", line 363, in load_marked_modules
loaded, processed = load_module_graph(
File "C:\odooo\odoo\odoo\modules\loading.py", line 222, in load_module_graph
load_data(cr, idref, mode, kind='data', package=package)
File "C:\odooo\odoo\odoo\modules\loading.py", line 69, in load_data
tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind)
File "C:\odooo\odoo\odoo\tools\convert.py", line 745, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate)
File "C:\odooo\odoo\odoo\tools\convert.py", line 811, in convert_xml_import
obj.parse(doc.getroot())
File "C:\odooo\odoo\odoo\tools\convert.py", line 731, in parse
self._tag_root(de)
File "C:\odooo\odoo\odoo\tools\convert.py", line 680, in _tag_root
f(rec)
File "C:\odooo\odoo\odoo\tools\convert.py", line 693, in _tag_root
raise ParseError('while parsing %s:%s, somewhere inside\n%s' % (
Exception
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\odooo\odoo\odoo\http.py", line 644, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "C:\odooo\odoo\odoo\http.py", line 302, in _handle_exception
raise exception.with_traceback(None) from new_cause
odoo.tools.convert.ParseError: while parsing file:/c:/odooo/odoo/addons/secondmodule/views/views.xml:29, somewhere inside
<record model="ir.actions.server" id="secondmodule.action_server">
<field name="name">secondmodule server</field>
<field name="model_id" ref="model_secondmodule_secondmodule"/>
<field name="state">code</field>
<field name="code">
action = {
"type": "ir.actions.act_window",
"view_mode": "tree,form",
"res_model": model._name,
}
</field>
</record>