sqlalchemy - Pylons + SQLA: One to One Relationship -


newbie question. pylons 1 + sqla using declarative style. new python.

i have "master" class called entity, "child" classes must belong them valid. link master class on child object level. issue can't seem figure out how 1 creates child object , create master object create link between objects. make use of relations linking.

thus create ono on 1 link below: entity 1 - client 1 entity 2 - client 2 entity 3 - producer 1 entity 4 - producer 2 etc.

the code might explain better.

class entity(base):     __tablename__ = "entities"     # primary key     entity_id = column(integer, primary_key=true)     # data fields     name =  column(unicode(255), nullable=false)     def __init__(self, name, description):         self.name = name     def __unicode__(self):         return self.name     __str__ = __unicode__  class client(base):     __tablename__ = "clients"     client_id = column(integer, primary_key=true)     # data fields     name = column(unicodetext(255), nullable=false, unique=true)     # entity link     entity_id = column(integer, foreignkey('entities.entity_id'))     # mapper     entity = relation('entity')     def __init__(self, name):         self.name = name     def __unicode__(self):         return self.name     __str__ = __unicode__ 

in controller try create new client , append entity, fails miserably. please code below.

            client_entity = model.entity(name=client_name, description=client_name + " added")             client = model.client(name=client_name)             client.entity.append(client_entity)             session.add(client)             session.commit() 

now according me should possible , hope can @ wits end.

does make sense?

class entity(base):     __tablename__ = "entities"     # primary key     entity_id   = column(integer, primary_key=true)     # data fields     name        =  column(unicode(255), nullable=false)      def __init__(self, name, description):         self.name           = name      def __unicode__(self):         return self.name     __str__ = __unicode__  class client(base):     __tablename__ = "clients"     client_id   = column(integer, primary_key=true)     name        = column(unicodetext())     entity_id   = column(integer, foreignkey('entities.entity_id'))     # mapper     entity = relation('entity', uselist=false, backref='clients')      def __init__(self, name):         self.name = name      def __unicode__(self):         return self.name     __str__ = __unicode__    client_name="clientname" entitiy_name="entityname"  client = client(name=client_name) client.entity=entity(name=entitiy_name, description=entitiy_name + " added") 

i think "uselist=false" useful if use onetoone.


Comments

Popular posts from this blog

android - Spacing between the stars of a rating bar? -

aspxgridview - Devexpress grid - header filter does not work if column is initially hidden -

c# - How to execute a particular part of code asynchronously in a class -