readikus
readikus

Reputation: 366

Odoo 8 Module - adding a new field to the model

I am getting an error adding a new field to an Odoo 8 module. When I comment it out of the view, it works. When it is in, I get the following error:

ParseError: "ValidateError Field(s) arch failed against a constraint: Invalid view definition

Error details: Field filedata does not exist

Error context: View course.form

This is my models.py file:

from openerp import models, fields, api

class Course(models.Model):
    _name = 'openacademy.course'

    name = fields.Char(string="Title", required=True)
    description = fields.Text()
    filedata = fields.Binary('File')

And this is an extract from my view file views/openacademy.xml

  <?xml version="1.0" encoding="UTF-8"?>
  <openerp>
      <data>
        <record model="ir.ui.view" id="course_form_view">
           <field name="name">course.form</field>
           <field name="model">openacademy.course</field>
           <field name="arch" type="xml">
               <form string="Course Form">
                  <sheet>
                      <group>
                          <field name="name"/>
                          <field name="description"/>
                          <field name="filedata" />
                      </group>
                  </sheet>
               </form>
           </field>
       </record>
       ....

Any thoughts?

Upvotes: 0

Views: 1089

Answers (4)

You should try restarting Odoo server as the field probably hasn't been persisted yet due to the binary field misspelling. Try checking the PostgreSQL database directly using PgAdmin or Sql Workbench to check the field is correctly in place.

Regarding your view, everything seems right.

You should update your module through Odoo interface or with the '-u' option of the odoo.py command.

Regards,

Upvotes: 1

Kenly
Kenly

Reputation: 26758

binary field should be capitalized.

Upvotes: 1

Rutul Raval
Rutul Raval

Reputation: 313

  • First of all define the field properly as said here:

    filedata = fields.Binary('File')
    

And then Uninstall and reinstall your module.

If the problem still occurs,

Create a new database and try again.

Upvotes: -1

Prashant
Prashant

Reputation: 704

Hello dear add like Binary add in camelcase

filedata = fields.Binary('File')

Upvotes: 1

Related Questions