Problema con relaciones en sqlobject

Luis Miguel Morillas morillas en gmail.com
Vie Mayo 12 10:21:23 CEST 2006


El 12/05/06, Raúl Alexis Betancor Santana<rabs en dimension-virtual.com> escribió:
> El Viernes, 12 de Mayo de 2006 01:08, Luis Miguel Morillas escribió:
> > Alquien ve algo mal en este ejemplo?
>
> Varias cosas.
>
> > from sqlobject import *
> > connection_string="sqlite:/:memory:"
> > connection = connectionForURI(connection_string)
> > sqlhub.processConnection = connection
> >
> > class Clasea(SQLObject):
> >     valor = StringCol()
> >     relaciones = ForeignKey('Claseb')
>
> Las relaciones no son de una clase con otra, sino del atributo de una clase
> con el atributo de la otra.
>
Por definición una clave foránea es una clave de otra tabla, no?.
Además he copiado (simplificando) el ejemplo del tutorial de sqlobject
http://www.sqlobject.org/SQLObject.html#one-to-many-relationships

class Address(SQLObject):
    street = StringCol()
    city = StringCol()
    state = StringCol(length=2)
    zip = StringCol(length=9)
    person = ForeignKey('Person')
Address.createTable()

class Person(SQLObject):
    firstName = StringCol()
    middleInitial = StringCol(length=1, default=None)
    lastName = StringCol()
    addresses = SingleJoin('Address')
Person.createTable()


> [...]
> > ¿Por qué busca el atributo claseb_id?
>
> Porque en ausencia de que tu indiques el atributo expecífico de la clase b por
> el que se relacionan ambas clases, SQLObject busca un
> atributo "identificador" (id) en la clase b para hacer la relación.
>
Ese identificador lo crea por defecto SQLObject si no decimos lo contrario ¿no?



Saludos,

--

Luis Miguel




Más información sobre la lista de distribución Python-es