--On 16. Mai 2007 13:45:21 -0400 Michael Bayer <[EMAIL PROTECTED]> wrote:


new to the FAQ:

http://www.sqlalchemy.org/trac/wiki/
FAQ#FlushError:instancesomeinstanceisanunsavedpendinginstanceandisanorph
an



The FAQ does not explain the problem. Look at the real code:


   def importImagesFromFilesystem(self, lidx, imgdir):
       """ Import all images from a local filesystem into
           the staging area of the Medium.
       """

       # get hold of the Medium object and the persistent object
       medium = self.mediendb.getMedium(lidx)
       ^^^^^^^^
       returns an existing Medium row

Version, VersionFile = self.mediendb.connection.getMappers('versions', 'files')
       ^^^^^^^^^^^^^
       returns the mappers for Versions and Files

       files = []

       filelist = [list of some filenames]
       for name in filelist:

               vf = VersionFile(format_id=format_id,
                                width=width,
                                height=height,
                                size=size,
                                sha1hash=hash)


               files.append(vf)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
               collect all VersionFile instances

       medium.versions.append(Version(version=0))
       ^^^^^^^^^^^^^^^^^^^^^^^^^
       Attach a new Version() to the medium

       medium.versions[0].files = files
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       attach the collected VersionFile instances to the Version

This code causes the trouble. There is no save() operation involved - just
a flush() operation driven by the Zope transaction integration of SA.

-aj

Attachment: pgpGTJidZwC4n.pgp
Description: PGP signature

Reply via email to