Odoo Help

Welcome!

This community 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.

0

Initializing one2many field with a new object

orm
By
Imran
on 6/1/15, 3:07 PM 1,020 views

Hi,

I have the following defintions :

class fs_reference(osv.Model):

_name = "fs.reference"

_columns = { #describe my data

'name' : fields.char('Name', size=128, required=True),

'reference_stock_id': fields.one2many('fs.stock','stock_reference_id', string='Stock', default=

lambda self : self.pool.get('fs.stock').create(0,0, {

   'quantity':0,

    'stock_reference_id':self.id }))


class fs_stock(osv.Model):

_name = "fs.stock"

_columns = { #describe my data

'quantity' : fields.integer('Quantite', readonly=True),

'stock_reference_id': fields.many2one('fs.reference', string='Reference')

}


The user will create an fs.reference object and the referenced fs.stock should be initialized automatically.

With the above code I get an error :


Traceback (most recent call last):

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\http.py", line 530, in _handle_exception

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\http.py", line 567, in dispatch

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\http.py", line 303, in _call_function

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\service\model.py", line 113, in wrapper

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\http.py", line 300, in checked_call

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\http.py", line 796, in __call__

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\http.py", line 396, in response_wrap

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\openerp\addons\web\controllers\main.py", line 949, in call_kw

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\openerp\addons\web\controllers\main.py", line 941, in _call_kw

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\api.py", line 241, in wrapper

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\api.py", line 336, in old_api

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\models.py", line 4042, in create

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\api.py", line 239, in wrapper

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\api.py", line 462, in new_api

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\models.py", line 1809, in _add_missing_default_values

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\api.py", line 241, in wrapper

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\api.py", line 336, in old_api

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\models.py", line 1335, in default_get

File "C:\Program Files (x86)\Odoo 8.0-20150318\myAddons\fluent_sales\fluent_sales.py", line 25, in <lambda>

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\api.py", line 241, in wrapper

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\api.py", line 335, in old_api

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\api.py", line 241, in wrapper

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\models.py", line 5210, in browse

File "C:\Program Files (x86)\Odoo 8.0-20150318\server\.\openerp\api.py", line 710, in __new__

AttributeError: 'int' object has no attribute 'dbname'



Thanks for your help

0
lenin
On 3/7/16, 12:31 PM

Hola como estas Tengo la solucion Mira este ejemplo

Si quieres saber como lo hise entra a mi pagina ahi describo paso a paso su elaboracion. Y proximamente hare videos por el momonto solo ingresa ami pagina https://github.com/Leningsv/Odoo/wiki/Valores-por-Defecto  tienes que dirigirte al tema 


https://github.com/Leningsv/Odoo/wiki/Valores-por-Defecto

https://github.com/Leningsv/Odoo/wiki/Valores-por-Defecto

https://github.com/Leningsv/Odoo/wiki/Valores-por-Defecto

https://github.com/Leningsv/Odoo/wiki/Valores-por-Defecto 

Valores por defecto One2Many

'''Con esta Funcion pongo valores por defecto el las cuentas de tipo ordenador
Esto lo hago con la finalidad que esten listadas todas las cuentas tipo ordenador'''          
@api.model
def default_get(self, vals):
    auxOrganizerType= self.env['gol.organizer.type'].search([])
    listItemOrganizerAccount=[]
    for item in auxOrganizerType:
        '''Aqui lleno mi lista con un array para esto adjunte () diciendole a mi lista que lo que
        ingreso es un array'''
        listItemOrganizerAccount.append((0,0,{'auxType':item.id}))
    res = super(GolAccount, self).default_get(vals)      
    res.update({'itemOrganizerAccount': listItemOrganizerAccount})
    return res
0

Bole

--Bole--
2385
| 5 4 6
Zagreb | Karlovac, Croatia
--Bole--

there is only 10 kind of people the ones that understand binary ... and others

Bole
On 6/26/15, 3:36 AM

My guess wold be that you default value is worng.. try: replacing lambda ...create() with:

[(0,0, { 'quantity':0 )]

- this would be the walue you would normaly write in thta field to create record in ther model...(no self.id needed!)

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)

Stats

Asked: 6/1/15, 3:07 PM
Seen: 1020 times
Last updated: 3/7/16, 12:31 PM