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