But that's slightly different topic, so I created a separate thread in this group - http://groups.google.com/group/turbogears/t/d22452934e8fd6e4. Hopefully narrow focus will help guys who will be looking for concrete answers later.
Artem. On Jan 11, 2:25 pm, Artem Marchenko <[email protected]> wrote: > Thank you, David > > I tried your example and SQLAlchemy seems to correctly modify the > objects for linking them. > Now I only need to create tables first. In your case, you probably > manually created them in Postgre. I am trying to follow the wiki20 > style and make SQLAlchemy create tables (in Sqlite). At the moment I > am stuck at the point of creating the foreign key. When calling > metadata.create_all (and actually drop_all) SQLAlchemy tells that it > can't create foreign key to the non-existing table.. of course, > because it hasn't been created yet. I wonder how people create linked > tables via SQLAlchemy. > > wordpairtopics_table = Table("wordpairtopics", metadata, > Column("id", Integer, primary_key = True), > Column("title", Unicode(100), nullable = False) > ) > > class WordPairTopic(object): > def __init__(self, title): > self.title = title > > wordpairs_table = Table("wordpairs", metadata, > Column("id", Integer, primary_key=True), > Column("sourcetext", Unicode(100), nullable = False), > Column("desttext", Unicode(100), nullable = False), > Column("topic_id", Integer, ForeignKey("worpairtopics.id")) > ) > > ... > engine = create_engine("sqlite:///testdevdata2.db", echo=True) > DBSession.configure(bind=engine) > > # Create the tables > metadata.drop_all(engine) > metadata.create_all(engine) > > Best regards, > Artem. > > On Jan 9, 11:55 pm, David Gardner <[email protected]> wrote: > > > Not sure about TG2, but I have been using SQLAlchemy 0.5 against TG > > 1.0.7 for a while now. Note in my case I'm using SQLAlchemy from the > > command line, and then importing my SA code into model.py in TG and > > exposing it as a webapp. I'm not sure I remember why but adding > > 'save_on_init=False' to my mappers fixed something. > > > from sqlalchemy import * > > from sqlalchemy.orm import * > > > # Turbogears > > compatabilityhttp://www.sqlalchemy.org/docs/04/session.html#unitofwork_contextual > > Session = scoped_session(sessionmaker(autoflush=True, autocommit=True)) > > mapper = Session.mapper > > > db_uri='postgres://%s:%...@%s/%s' % (DB_USER,DB_PASS,DB_HOST,DB_NAME) > > db = create_engine (db_uri) > > metadata = MetaData(db) > > > class Note(object): > > pass > > > class User (object): > > pass > > > note_table = Table('note', metadata, autoload=True) > > users_table = Table ('users', metadata, autoload=True) > > > mapper(Note, note_table, save_on_init=False) > > > mapper (User, users_table, properties={ > > 'Notes':relation(Note, backref='Author', lazy=True)}, > > save_on_init=False) > > > ........ > > > session=create_session() > > user=session.query(User).get('dgardner') > > for n in user.Notes: > > print n.note > > > Artem Marchenko wrote: > > > Hi All > > > > I am playing with TurboGears 2 for about a week already. So far > > > everything looks great and I am able to create functionality with > > > exceptionally small amount of neat-looking code. > > > > At the moment I am stuck with the SQLAlchemy based relations. I want > > > to build simple one-to-many relationship (think User-Addresses for > > > example) and I can't get how to do that. Wiki20 tutorial doesn't touch > > > it and SQLAlchemy tutorial > > > athttp://www.sqlalchemy.org/docs/05/ormtutorial.html#building-a-relation > > > seems to be based on a functionality not yet supported (not > > > recommended?) by TG yet. I was able to find some topics about similar > > > things in this group, but it looks like TG and SQLAlchemy evolve > > > faster, than tutorials and discussions :) > > > > Could anybody, please, post a simple one to many model example? > > > Something that would allow accessing addresses e.g. via the following: > > > >>>> jack = User('jack') > > >>>> jack.addresses > > > > [] > > > > Best regards, > > > Artem. > > > -- > > David Gardner > > Pipeline Tools Programmer, "Sid the Science Kid" > > Jim Henson Creature Shop > > [email protected] --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "TurboGears" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/turbogears?hl=en -~----------~----~----~----~------~----~------~--~---

