Ошибка разработки модуля Odoo: AssertionError: Element openerp имеет дополнительный контент: данные

Я новичок в разработке модулей для Odoo. Я приступил к разработке демонстрационного модуля по документации. Но это ошибка. Я предоставлю вам все файлы и коды здесь. кто-нибудь, пожалуйста, помогите ..

Мой openerp .py файл

# -*- coding: utf-8 -*-
{
    'name': "Daily Transaction Manager",

    'summary': """
        Used For Managing entrys of our daily transactions.""",

    'description': """
        Used For Managing entrys of our daily transactions
    """,

    'author': "Peniel Technology LLC",
    'website': "http://www.penieltech.com.com",

    # Categories can be used to filter modules in modules listing
    # Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml
    # for the full list
    'category': 'manager',
    'version': '1.0',

    # any module necessary for this one to work correctly
    'depends': [],

    # always loaded
    'data': [
        # 'security/ir.model.access.csv',
        'daily_transaction_view.xml',

    ],
    # only loaded in demonstration mode
    'demo': [],
    'installable': True,
    'auto_install':False,
}

Мой файл init .py: -

import daily_transaction

Мой файл daily_transaction.py

from openerp import fields,osv


class daily_transaction(osv.osv):
    _name= "daily_transaction"
    _description= "Daily Transaction"

    _coloums = {
        'subject': fields.char('Subject',size=128,required=True),
        'date' : fields.date('Date',required=True),
        'note' : fields.text('Notes'),
        'amount' : fields.float('Amount',required=True),
        'type' : fields.selection([
            ('transport','Transport'),
            ('household','Household'),
            ('personal','Personal'),
            ], 'Type',required=True),

    }

Мой daily_transaction_view.xml выглядит так: -

<?xml version="1.0" encoding="UTF-8"?>
<openerp>
    <data>
<!-- Action -->
<record id="action_daily_transaction" model="ir.actions.act_window">
    <field name="name">Daily Transaction </field>
    <field name="res_model">daily.transaction</field>
    <field name="view_type">form</field>
    <field name="view_mode">tree,form</field>
    <field name="search_view_id" eval="False"/>
    <field name="context">{}</field>
    <field name="help">Create new daily trasaction</field>
</record>   

<!-- Menu Code here -->
 <menuitem name="Daily Transaction" id="base.daily_transaction_roof" sequence="60"/>

 <menuitem id="menu_daily_transaction_roof" name="Daily Transaction" parent="base.daily_transaction_roof" sequence="1"/>

 <menuitem action="action_daily_transaction" id="menu_action_daily_transaction" parent="menu_daily_transaction_roof" sequence="20"/>

 <!-- Tree--> 
<record id="view_daily_transaction_tree" model="ir.ui.view">
    <field name="name">daily.transaction.tree</field>
    <field name="model">daily.transaction</field>
    <field name="arch" type="xml">
        <tree string="Daily Transaction">
            <field name="name"/>
            <field name="date"/>
            <field name="type"/>
            <field name="amount"/>


        </tree> 

    </field>    



</record>

<!--Form -->

<record id="view_daily_transaction_form" module="ir.ui.view">
    <field name="name">daily.transaction.form.view</field>
    <field name="model">daily.transaction</field>
    <field name="arch" type="xml">
        <form string="Daily Transaction" >
            <group>
                <field name="name"/>
                <field name="date"/>
                <field name="type"/>
                <field name="amount"/>
                <field name="note"/>

            </group>    

        </form> 

    </field>    


</record>   


    </data>

</openerp>

Когда я пытался установить, я получаю сообщение об ошибке:

Odoo Server Error
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 643, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 680, in dispatch
    result = self._call_function(**self.params)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 316, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 118, in wrapper
    return f(dbname, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 309, in checked_call
    result = self.endpoint(*a, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 959, in __call__
    return self.method(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 509, in response_wrap
    response = f(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 896, in call_button
    action = self._call_kw(model, method, args, {})
  File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 884, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 250, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/module/module.py", line 459, in button_immediate_install
    return self._button_immediate_function(cr, uid, ids, self.button_install, context=context)
  File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 250, in wrapper
    return old_api(self, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/openerp/addons/base/module/module.py", line 533, in _button_immediate_function
    registry = openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True)
  File "/usr/lib/python2.7/dist-packages/openerp/modules/registry.py", line 386, in new
    openerp.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 338, in load_modules
    loaded_modules, update_module)
  File "/usr/lib/python2.7/dist-packages/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 "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 156, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 98, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/usr/lib/python2.7/dist-packages/openerp/tools/convert.py", line 851, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/usr/lib/python2.7/dist-packages/openerp/tools/convert.py", line 925, in convert_xml_import
    relaxng.assert_(doc)
  File "lxml.etree.pyx", line 3373, in lxml.etree._Validator.assert_ (src/lxml/lxml.etree.c:166352)
AssertionError: Element openerp has extra content: data, line 3

person Peniel    schedule 25.02.2016    source источник
comment
попробуйте удалить версию 9.0 при просмотре формы. Кстати, я рекомендую вам использовать Api 8, а не старый api, если вы делаете новый модуль   -  person dccdany    schedule 25.02.2016
comment
та же ошибка .... это старый код ???   -  person Peniel    schedule 25.02.2016
comment
Да, это. Хорошо, попробуйте с хорошей таблицей, так как запись находится на том же уровне, что и данные, пожалуйста, и отредактируйте свой вопрос с новым кодом, кстати   -  person dccdany    schedule 25.02.2016
comment
что я должен делать?? есть ли у них ошибка в коде?   -  person Peniel    schedule 25.02.2016
comment
Нет, это просто старый (ищите odoo new api / old api). Ошибка связана с другой вещью в вашем .xml файле, поэтому, пожалуйста, попробуйте то, что я сказал, прежде, пока мы не исправим ее :)   -  person dccdany    schedule 25.02.2016
comment
Я отредактировал код ... Я проверил, но показывает ту же ошибку ...   -  person Peniel    schedule 25.02.2016
comment
Табулатура в файле .xml?   -  person dccdany    schedule 25.02.2016
comment
я .. я его поменял, .. но ничего не работает ........... та же старая ошибка ..   -  person Peniel    schedule 25.02.2016
comment
хорошо, затем пошагово, попробуйте прокомментировать весь свой xml файл и просто поместите пункты меню, если это сработает, мы добавим представления позже   -  person dccdany    schedule 25.02.2016
comment
kk сделал это .. ParseError: Внешний идентификатор не найден в системе: daily_transaction.action_daily_transaction при анализе /usr/lib/python2.7/dist-packages/openerp/addons/daily_transaction/daily_transaction_view.xml:19, рядом ‹menuitem action = action_daily_transaction id = menu_action_daily_transaction parent = menu_daily_transaction_roof sequence = 20 / ›   -  person Peniel    schedule 25.02.2016
comment
удалите действие в меню или раскомментируйте раздел действий вашего xml   -  person dccdany    schedule 25.02.2016
comment
Я изменил ... и он отображается как установленный ... Но я не могу найти его в списке приложений, меню или где-либо еще ...   -  person Peniel    schedule 25.02.2016
comment
удалить базу. в вашем первом меню: ‹menuitem name = Daily Transaction id = daily_transaction_roof sequence = 60 /› а также в родительском элементе ниже .. вы должны увидеть его как новое меню при установке   -  person dccdany    schedule 25.02.2016
comment
но не отображается .. мне нужно перезапустить или что-то в этом роде ??   -  person Peniel    schedule 25.02.2016
comment
Сделайте следующее: поместите новый модуль в папку addons, перезапустите odoo, установите модуль и обновите браузер.   -  person dccdany    schedule 25.02.2016
comment
готово ... это .. Я не знаю, в чем проблема? его все еще не видно .......   -  person Peniel    schedule 25.02.2016
comment
если у вас есть XML-файл, добавленный в атрибут данных __ openerp __.py, и в вашем XML-файле внутри у вас есть ‹menuitem name = Daily Transaction id = base.daily_transaction_roof sequence = 60 /› внутри тегов openerp и data, вы при установке модуля должно появиться новое меню, я не знаю, какой из этих шагов вам не хватает   -  person dccdany    schedule 25.02.2016


Ответы (7)


Я получил ту же ошибку при использовании неправильного атрибута "значение" для поля:

<field value="myvalue" name="myfield"/>

и я исправил это с помощью:

<field name="myfield">myvalue</field>

Убедитесь, что все ваши элементы правильно закрыты.

Кажется, что сообщение об ошибке проверки не отображается должным образом.

person yucer    schedule 15.04.2016
comment
То, что ответил @yucer, сработало для меня, в Odoo v10 я получал Element odoo has extra content: template, line 3, и проблема заключалась в параметре тега XML, в моем случае я написал inherit вместо inherit_id. - person forvas; 09.04.2018

есть орфографическая ошибка в файле .py и в представлении формы .....

_coloums --> _columns

.py file --> 

_columns = 
{ 'subject': fields.char('Subject',size=128,required=True),
    'date' : fields.date('Date',required=True),
    'note' : fields.text('Notes'),
    'amount' : fields.float('Amount',required=True),
    'type' : fields.selection([
        ('transport','Transport'),
        ('household','Household'),
        ('personal','Personal'),
        ], 'Type',required=True),
}

<!--Form -->

<record id="view_daily_transaction_form" **module**="ir.ui.view"> 
<record id="view_daily_transaction_form" **model**="ir.ui.view"> 

Надеюсь, этот ответ будет вам полезен .. Спасибо

person Manali Kalariya    schedule 18.03.2016

В файле daily_transaction.py,

_name= "daily_transaction"

Должно быть,

_name= "daily.transaction"
person Krishh    schedule 26.02.2016
comment
он дает новую ошибку, например, атрибут char не найден и модуль .__ init __ () принимает не более 2 аргументов (3 задано), подобных этому - person Peniel; 27.02.2016
comment
наконец .. его установлено и меню появилось ... но создание и перечисление вызывают ошибку - person Peniel; 28.02.2016

Если вы измените какой-либо код в файле .xml, сохраните этот файл, и вы должны перезапустить сервер и обновить модуль, чтобы отредактированный файл снова загрузился на сервер.

Вы можете обновить свой модуль с помощью командной строки, как показано ниже:

./odoo.py -d db_name -u module_name

Только после обновления вашего модуля изменения вступят в силу.

person Rutul Raval    schedule 26.02.2016

В большинстве случаев проблема вызвана неправильным написанием где-то, например, имена атрибутов в тегах XML или значение тега находится между открывающим и закрывающим тегами, но не значением поля. В любом случае, проверьте внимательно, ошибки не показывают, где именно орфографическая ошибка.

person user123    schedule 14.12.2018

В строке 3 вашей daily_transaction_view.xml есть один элемент <data>.

Odoo не ожидает этого в вашем XML. Удалите и попробуйте обновить свой модуль. Он должен работать.

person Akshay Bhadange    schedule 23.02.2021

Вы допустили орфографическую ошибку в XML-файле.

Это должно быть model, а не module:

<record id="view_daily_transaction_form" model="ir.ui.view">
    <field name="name">daily.transaction.form.view</field>
    <field name="model">daily.transaction</field>
    <field name="arch" type="xml">
        <form string="Daily Transaction" >
            <group>
                <field name="name"/>
                <field name="date"/>
                <field name="type"/>
                <field name="amount"/>
                <field name="note"/>
            </group>    
        </form> 
    </field>    
</record>
person Younis Mahsud    schedule 23.02.2021