This question has been flagged
2 Replies
5953 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

Avatar
Discard
Best Answer

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
Avatar
Discard
Best Answer

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

Avatar
Discard