Odoo Help

0

[Odoo 8] ProgrammingError: column "id" does not exist

By
Tazan
on 7/3/15, 5:41 AM 2,300 views

I have a model

class fbv_use_carrier(models.TransientModel):

pickings = fields.Many2many('stock.picking', 'fbv_use_carrier_line', 'fbv_id', 'picking_id', 'Picking List') 
 class fbv_use_carrier_line(models.TransientModel):
_name=
'fbv.use.carrier.line'


picking_id = fields.Many2one('stock.picking', string='List Piking')
fbv_id = fields.Many2one('fbv.use.carrier', string='FBV Use Carrier ID'

But i have error!

 ProgrammingError: column "id" does not exist
LINE 1: SELECT id FROM fbv_use_carrier_line WHERE COALESCE(write_dat...

Hoping for some feedback!

Thanks

Did you defined name for your class ? like _name = 'fbv.use.carrier'

Emipro Technologies Pvt. Ltd.
on 7/3/15, 5:58 AM
1

Hello,

Your problem is "very very" simple,

Solution : 

Just modify the name of table in M2M field definition. Like as below, ( I have marked as bold + italic + underline )

pickings = fields.Many2many('stock.picking', 'fbv_use_carrier_line', 'fbv_id', 'picking_id', 'Picking List')

Reason of Error :

When you define many2many field, 2nd argument creates the table. Now you have given the same name of the table which you have used while defining following class, ( I have marked bold + italic + underline )

class fbv_use_carrier_line(models.TransientModel):
_name='fbv.use.carrier.line'
picking_id = fields.Many2one('stock.picking', string='List Piking')
fbv_id = fields.Many2one('fbv.use.carrier', string='FBV Use Carrier ID'

By adding same name of new M2M table, system overrides new table definition and of course "ID" column will be removed. ( FYI : M2M table stores only 2 columns ). That is why when system evaluates following line,

fbv_id = fields.Many2one('fbv.use.carrier', string='FBV Use Carrier ID'

it shows you error. ( ProgrammingError: column "id" does not exist )

Hope this answer will lead to exact solution of your problem !

0

Tazan,

You probably have misunderstood the concept of Many2Many. Its used when you are linking an existing records of another model.

What I read from your code is, you are trying to establish the one2many relation to lines, but you miss it. One2many is used to link multiple lines on dynamism.

If you have written the one2many field, the reference field should be named as fbv_id which is defined as Many2one in carrier lines.

carrier_line_ids = fields.One2many('fbv.use.carrier.line','flv_id', 'Lines').

Hope this helps.

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

Register

Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

2 follower(s)

Stats

Asked: 7/3/15, 5:41 AM
Seen: 2300 times
Last updated: 7/3/15, 7:37 AM