I tried this from shell and cannot reproduce the problem:
>>> db = DAL()
>>> db.define_table('laptops',
... Field('id_laptop','integer'),
... Field('serial_number','string'),
... Field('id_trademark','integer'),
... primarykey=['id_laptop'])
<Table laptops (id_laptop,serial_number,id_trademark)>
>>> db.laptops.insert(serial_number='1',id_trademark=int('1')){}
>>> db.commit()
On Thursday, 27 September 2012 02:00:57 UTC-5, Manu Mora wrote:
>
> Hello! I have a problem with DAL.
>
> I have this table:
>
> *cdb.define_table('laptops', *
> * Field('id_laptop','integer'),*
> * Field('serial_number','string'),*
> * Field('id_trademark','integer'),*
> * primarykey=['id_laptop'])*
> *
> *
> and when I try to insert:
>
> *
> self.DB.laptops.insert(serial_number=self.serial_number,id_trademark=int(self.id_trademark))
> *
> * self.DB.commit()*
>
> I get this error:
>
> *TypeError: list indices must be integers, not str*
> *
> *
> Thanks.
>
--