Ok, it's solved using joinColumn.

Thanks.

Greetings.

2008/8/12 Oleg Broytmann <[EMAIL PROTECTED]>

> On Tue, Aug 12, 2008 at 06:18:39PM +0200, Luis Javier Peris wrote:
> > I'd like to know if there is a restriction using inheritance about
> > multiplejoin function because I'm getting an error and I don't know why.
> > I've the following code:
> >
> > class Question(InheritableSQLObject):
> >     filename = StringCol(default=None, length=255, unique=True)
> >     title = StringCol(default=None)
> >     default_mark = FloatCol(default=0.0)
> >     wording = RelatedJoin('Content')
> >     term_questions = RelatedJoin('Term', joinColumn='term',
> > otherColumn='question',
> >                                  intermediateTable='Term_questions')
> >     answers = MultipleJoin('Answer')
> >     questionref = MultipleJoin('QuestionRef')
> >
> >
> > class Answer(SQLObject):
> >     value = StringCol(default=None)
> >     calification = FloatCol(default=None)
> >     ide = StringCol(default=None)
> >     question = ForeignKey('Question')
> >
> >
> > class Ord(Question):
> >     _inheritable = False
> >     shuffle = BoolCol()
> >     orderanswers = MultipleJoin('OrderChoice')
> >
> >
> > class OrderChoice(SQLObject):
> >     value = StringCol(default=None)
> >     ord = IntCol(default=None)
> >     ide = StringCol(default=None)
> >     question = ForeignKey('Ord')
> >
> > and when I've a Ord instance (called 'q') and I do 'q.orderanswers' I get
> > the following error:
> >
> > sqlobject.dberrors.OperationalError: Unknown column 'ord_id' in 'where
> > clause'
>
>   It has nothing with inheritance. I simplified the program (you have to
> do this yourself) to:
>
> class Ord(SQLObject):
>    orderanswers = MultipleJoin('OrderChoice')
>
> class OrderChoice(SQLObject):
>    question = ForeignKey('Ord')
>
> Ord.createTable()
> OrderChoice.createTable()
>
> ord = Ord()
> print ord.orderanswers
>
>   and got the same error. Well, with this simple program and SQL it
> generates it easy to see where is the problem:
>
>  1/QueryR  :  CREATE TABLE ord (
>    id INTEGER PRIMARY KEY
> )
>  2/QueryR  :  CREATE TABLE order_choice (
>    id INTEGER PRIMARY KEY,
>    question_id INT CONSTRAINT question_id_exists REFERENCES ord(id)
> )
>  3/QueryR  :  INSERT INTO ord VALUES (NULL)
>  4/QueryR  :  SELECT NULL FROM ord WHERE ((ord.id) = (1))
>  5/QueryR  :  SELECT id FROM order_choice WHERE ord_id = (1)
>
> Oleg.
> --
>     Oleg Broytmann            http://phd.pp.ru/            [EMAIL PROTECTED]
>           Programmers don't die, they just GOSUB without RETURN.
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> sqlobject-discuss mailing list
> sqlobject-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss
>
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
sqlobject-discuss mailing list
sqlobject-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss

Reply via email to