Oops - looks like the fix already made its way into 1.96.2 or 1.96.3.
Great!

Kevin

On Jun 2, 2:34 pm, Massimo Di Pierro <massimo.dipie...@gmail.com>
wrote:
> will fix this tonight.
>
> On Jun 2, 1:00 pm, Loren McGinnis <mcginnis.lo...@gmail.com> wrote:
>
>
>
>
>
>
>
> > I'm bumping this message, because the bug still hasn't been fixed in
> > the new release.
>
> > The erroneous line is now line 822 in dal.py, version 1.96.1.  It
> > worked correctly after I applied the same fix.
>
> > On Apr 29, 12:30 pm, Loren McGinnis <mcginnis.lo...@gmail.com> wrote:
>
> > > I'm using a legacy database that has a table with multiple columns in
> > > the primary key (If I could, I would change it).
>
> > > When inserting into this table, I get the following error:
>
> > >   File "/home/loren/dev/web2py/gluon/dal.py", line 774, in insert
> > >     return dict( [ (k,fields[k]) for k in table._primarykey ])
> > > TypeError: list indices must be integers, not str
>
> > > Some context for this line, in dal.py:
>
> > >         except Exception, e:
> > >             if isinstance(e,self.integrity_error_class()):
> > >                 return None
> > >             raise e
> > >         if hasattr(table,'_primarykey'):
> > >             return dict( [ (k,fields[k]) for k in table._primarykey ])
>
> > >         id = self.lastrowid(table)
> > >         if not isinstance(id,int):
> > >             return id
> > >         rid = Reference(id)
>
> > > I was able to fix this by simply replacing the line with:
>
> > > return dict([(k[0].name, k[1]) for k in fields if k[0].name in
> > > table._primarykey])

Reply via email to