Hi all, I'm trying to use Gadfly as storage for a Zpatterns rack. With the following skinscript trigger I can view records in the database. But I can't insert a new one. WHEN OBJECT ADDED CALL sqlInsertProduct() WITH QUERY lookup_product(client_name=self.id) COMPUTE client_name,email,rate,last_payment,primary,services Where: sqlInsertProduct is a zsql method. args: client_name email rate last_payment primary services Query template: INSERT INTO clienttracker_table (client_name, email, rate, last_payment, primary, services) VALUES ( '<dtml-var client_name>', '<dtml-var email>', '<dtml-var rate>', '<dtml-var last_payment>', '<dtml-var primary>', '<dtml-var services>' ) lookup_product is a zsql method. args: client_name Query template: select * from clienttracker_table where <dtml-sqltest client_name type=string> client_name,email,rate,last_payment,primary,services are fields of the table clienttracker_table and properties of the dataskin. If I remove "=self.id" from the trigger I am able to add a record to the db through the trigger. Without "=self.id" in the trigger I am unable to view the records in the db. I noticed in a post today that said ... you should probably choose some attribute other than 'id' as the attribute to check for your DataSkin. The 'id' attribute is always there... Objects are loaded by accessing attribute client_name and I still get the "object already exists" error. Questions: -Should I just create the record directly with the zsql method? That would defeat the purpose of using ZPatterns. -How do I eliminate the "already exists" error Zope version: Zope 2.2.1 Python version: 1.5.2 System Platform: freebsd4 -Aaron