I see...
class Person(SQLObject):
    name = StringCol()
    phoneNumbers = MultipleJoin('PhoneNumber', joinColumn='whose_id')
fixes it.

Hmmm, PhoneNumbers doesn't exist at the time Person is created, so you can't check for the proper joinColumn then. You would have to wait until the first use of joinColumn. What about defining __getattr__ on the relevant class and setting joinColumn when we first try to access it?
I'd look into it myself, but I am really not well versed in sqlobject source.

God bless,
John

On 11/08/05, Oleg Broytmann <phd@mail2.phd.pp.ru> wrote:
On Thu, Aug 11, 2005 at 05:10:23PM +0100, John Page wrote:
> class Person(SQLObject):
> name = StringCol()
> phoneNumbers = MultipleJoin('PhoneNumber')

class Person(SQLObject):
   name = StringCol()
   phoneNumbers = MultipleJoin('PhoneNumber', joinColumn="whose_id")

> _sqlite.DatabaseError: no such column: person_id

> Shouldn't it be looking for whose_id???

   It should.

> This can't be a bug, surely!?! I mean, someone must have noticed it if it
> were!

   No, not a bug, but well-known deficiency in SQLObject. It's been
reported on SF many times.

Oleg.
--
     Oleg Broytmann            http://phd.pp.ru/            phd@phd.pp.ru
           Programmers don't die, they just GOSUB without RETURN.