1
votes

When I tried to install a custom module, I got an error like this:

ValidateError
Error occurred while validating the field(s) arch: Invalid XML for View Architecture!

This is my module: init.py

import daily_transaction

openerp.py

{
    'name': 'Daily Transaction Manager',
    'version': '1.0',
    'category': 'manager',
    'description': """
This module will manage daily transaction.
==========================================
    """,
'author': 'Tarun',
'depends': [],
'data': ['daily_transaction_view.xml'],
'demo': [],
'installable': True,
'auto_install': False,

}

daily_transaction.py

from openerp.osv import fields, osv

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

_columns = {
    'subject': fields.char('Subject',required=True,size=128),
    '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()

daily_transaction_view.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
    <!-- Daily Transaction List View-->
    <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>
    <!-- Daily Transaction Form View-->
    <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" version="7.0">
                <group>
                    <field name="name"/>
                    <field name="date"/>
                    <field name="type"/>
                    <field name="amount"/>
                    <field name="note"/>
                </group>
            </form>
        </field>
    </record>
    <record id="action_daily_transaction" model="ir.actions.act_window">
        <field name="name">Daily Transaction</field>
        <field name="type">ir.actions.act_window</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 transaction here.</field>
    </record>
    <!-- Main Menu -->
    <menuitem name="Daily Transaction" id="base.daily_transaction_root" sequence="60"/>
    <!-- Sub Menu -->
    <menuitem id="menu_daily_transaction_root" name="Daily Transaction" parent="base.daily_transaction_root" sequence="1"/>
    <!-- Action -->
    <menuitem action="action_daily_transaction" id="menu_action_daily_transaction" parent="menu_daily_transaction_root" sequence="20"/>
</data>
</openerp>

And this is the log error:

2015-07-27 01:30:51,405 976 INFO odoo openerp.modules.module: module daily_transaction: creating or updating database tables 2015-07-27 01:30:51,431 976 INFO odoo openerp.modules.loading: module daily_transaction: loading daily_transaction_view.xml 2015-07-27 01:30:51,446 976 ERROR odoo openerp.osv.orm: Can't find field 'name' in the following view parts composing the view of object model 'daily.transaction': * daily.transaction.tree

Either you wrongly customized this view, or some modules bringing those views are not compatible with your current data model 2015-07-27 01:30:51,447 976 ERROR odoo openerp.addons.base.ir.ir_ui_view: Can't render view for model: daily.transaction Traceback (most recent call last): File "C:\OpenERP 7.0-20131109-002558\Server\server\openerp\addons\base\ir\ir_ui_view.py", line 126, in _check_render_view File "C:\OpenERP 7.0-20131109-002558\Server\server.\openerp\osv\orm.py", line 2264, in fields_view_get File "C:\OpenERP 7.0-20131109-002558\Server\server.\openerp\osv\orm.py", line 1941, in __view_look_dom_arch except_orm: ('View error', u"Can't find field 'name' in the following view parts composing the view of object model 'daily.transaction':\n * daily.transaction.tree\n\nEither you wrongly customized this view, or some modules bringing those views are not compatible with your current data model") 2015-07-27 01:30:51,461 976 ERROR odoo openerp.tools.convert: Parse error in file:///C:/OpenERP%207.0-20131109-002558/Server/server/openerp/addons/daily_transaction/daily_transaction_view.xml:5:

<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>

Traceback -

Traceback (most recent call last):
  File "C:\OpenERP 7.0-20131109-002558\Server\server\.\openerp\tools\convert.py", line 847, in parse
  File "C:\OpenERP 7.0-20131109-002558\Server\server\.\openerp\tools\convert.py", line 814, in _tag_record
  File "C:\OpenERP 7.0-20131109-002558\Server\server\openerp\addons\base\ir\ir_model.py", line 967, in _update
  File "C:\OpenERP 7.0-20131109-002558\Server\server\openerp\addons\base\ir\ir_ui_view.py", line 103, in create
  File "C:\OpenERP 7.0-20131109-002558\Server\server\.\openerp\osv\orm.py", line 4478, in create
  File "C:\OpenERP 7.0-20131109-002558\Server\server\.\openerp\osv\orm.py", line 1548, in _validate
except_orm: ('ValidateError', u'Error occurred while validating the field(s) arch: Invalid XML for View Architecture!')
2015-07-27 01:30:51,463 976 ERROR odoo openerp.netsvc: ValidateError
Error occurred while validating the field(s) arch: Invalid XML for View Architecture!
Traceback (most recent call last):
  File "C:\OpenERP 7.0-20131109-002558\Server\server\.\openerp\netsvc.py", line 292, in dispatch_rpc
  File "C:\OpenERP 7.0-20131109-002558\Server\server\.\openerp\service\web_services.py", line 626, in dispatch

The module above is from http://www.slideshare.net/TarunBehal1/odoo-open-erp-creating-a-module-37569034?related=1

I've have tried several methods from other posts here (using xpath, installing the module on a new database, update Base module and some other) but still the same error.

Where have I done wrong in my code?

2

2 Answers

0
votes

daily_transaction.py

from openerp.osv import fields, osv

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

_columns = {
    'name': fields.char('Name',required=True),
    'subject': fields.char('Subject',required=True,size=128),
    '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()

add 'name' field in daily_transaction.py file.

2
votes

their is no "name" field in the daily_transaction.py you either add name field or change daily_transaction_view.xml to some other defined column

<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" version="7.0">
            <group>
                <!-- <field name="name"/> --> <!--this was the error line -->
                <field name="subject"/> 
                <field name="date"/>
                <field name="type"/>
                <field name="amount"/>
                <field name="note"/>
            </group>
        </form>
    </field>
</record>