[Checkins] SVN: grokapps/rdbexample/trunk/src/rdbexample/app.py Fix having to instantiate a model for mappers

Jasper Spaans jspaans at thehealthagency.com
Sat May 3 16:14:55 EDT 2008


Log message for revision 86287:
  Fix having to instantiate a model for mappers

Changed:
  U   grokapps/rdbexample/trunk/src/rdbexample/app.py

-=-
Modified: grokapps/rdbexample/trunk/src/rdbexample/app.py
===================================================================
--- grokapps/rdbexample/trunk/src/rdbexample/app.py	2008-05-03 20:14:09 UTC (rev 86286)
+++ grokapps/rdbexample/trunk/src/rdbexample/app.py	2008-05-03 20:14:55 UTC (rev 86287)
@@ -3,6 +3,8 @@
 
 from zope.interface.interfaces import IInterface
 
+
+
 from sqlalchemy.schema import Column, ForeignKey
 from sqlalchemy.types import Integer, String
 from sqlalchemy.orm import relation
@@ -34,7 +36,7 @@
 
 
 class Departments(rdb.Container):
-    rdb.key('title')
+    rdb.key('id')
 
 class Faculty(rdb.Model):
     # rdb.table_name('faculty') is the default
@@ -56,13 +58,25 @@
     faculty_id = Column('faculty_id', Integer, ForeignKey('faculty.id'))
     title = Column('title', String(50))
 
+class AddDepartment(grok.AddForm):
+    grok.context(Departments)
 
+    @property
+    def form_fields(self):
+        return rdb.Fields(Department)
+
+    @grok.action('add')
+    def handle_add(self, *args, **kw):
+        d = Department(**kw)
+        self.context.set(d)
+
+
 class DepartmentView(grok.View):
     grok.name('index')
     grok.context(Department)
 
     def render(self):
-        return "Department: %i - %s" % (self.context.id, self.context.title)
+        return "Department: %r - %r" % (self.context.id, self.context.title)
 
 class DepartmentList(grok.View):
     grok.name('index')
@@ -89,8 +103,10 @@
 
     @property
     def form_fields(self):
-        return rdb.Fields(Faculty())
+        return rdb.Fields(Faculty)
 
     @grok.action('add')
     def handle_add(self, *args, **kw):
-        print kw
+        f = Faculty(**kw)
+        rdb.session().save(f)
+        #import pdb; pdb.set_trace()



More information about the Checkins mailing list