[TransWarp] Strange EntityDM behavior

John Landahl john at landahl.org
Tue Oct 7 01:23:28 EDT 2003

I'm seeing some strange behavior using EntityDM.  I create a new object, 
assign some values, and commit.  When I try to reload that same object 
(having saved its ID), change a field, and commit, it seems the changes don't 
get saved.  After putting a debug print in my DM's _save method, it appears 
that _save isn't getting called as I would expect.

Attached is a program which isolates and demonstrates the problem.  Even more 
strangely, in this program it seems that _save is never called at all!

TableDM is an attempt to get all the table-related code into one base DM which 
most of my other DMs will subclass.  I don't think the problem is with 
TableDM, though, since it seems to occur with my older DMs which subclass 
EntityDM directly (and which are basically copies of the DMs in the Bulletins 

The output I get for the program (executing via "PYTHONPATH=. peak 
import:test.App") is this:

  === _new
  === _items
  Initial value: "" (should be blank)
  After first update: "update1" (should be "update1")
  After first update: "update2" (should be "update2")
  (1, '', '')

When I'd expect something more like this:

  === _new
  === _items
  Initial value: "" (should be blank)
  === _save
  After first update: "update1" (should be "update1")
  === _load
  === stateFromRow
  === _items
  After first update: "update2" (should be "update2")
  === _save
  (1, 'update3', 'description')

Am I missing something?

John Landahl
john at landahl.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.py
Type: text/x-python
Size: 3740 bytes
Desc: not available
Url : http://www.eby-sarna.com/pipermail/peak/attachments/20031006/6029f83f/test.py

More information about the PEAK mailing list