Hi,

I have the following 2 declarative objects to represent a book and its
pages:

class Book(Base):
    __tablename__ = 'books'

    id = Column(Integer, primary_key=True)
    title = Column(String(32))

class Page(Base):
    __tablename__ = 'pages'

    id = Column(Integer, primary_key=True)
    book_id = Column(Integer, ForeignKey('books.id'), index=True)
    content = Column(String(1000))

    book = relation(Book, backref='pages', order_by=id)

    def __init__(self, page_no, content, book_id=None):
         self.id = page_no
         self.content = content
         if book_id is not None: self.book_id = book_id

I would like to read and insert info for books in a library (i.e. by
calling session.add(Book("My Book")) a vast number of times), keep
their database assigned ids in a dictionary and then insert info for
pages of these books (i.e. by calling session.add(Page(1, "Hello my
book!", 1)) without requiring to fetch book object from database and
adding the page to it. However, the book_id field in "pages" table is
inserted as NULL instead of the value assigned in the constructor. Is
there a way to achieve this behavior? The aim of such kind of approach
is to avoid keeping book objects in the memory or retrieving those
from database during in the initial creation of the database.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to