I'm using sqlalchemy for the first time and want to follow standard or
"best" practices. I have rather fundamental scenario:
- Form post back to exposed method "foo"
- using passed params, "foo" creates an object "thing"
- "thing" is saved
- redirect is raised to "/url/to/thing/%s" % thing.id
My question: what's considered the standard way of doing this?
To eliminate some ambiguity, here's some pseudo-source code:
thing_table = Table('thing', metadata,
Column('id', Integer,
primary_key=True),
Column('name', String(16),
nullable=False),
Column('text', String(255),
nullable=False)
)
class Thing(object):
def __repr__(self):
return "Thing id:%d name:%s text: %s" % \
(self.id, self.name, self.text)
assign_mapper(session.context, Thing, thing_table)
class Root(controllers.Controller)
......
things = Things()
class Things(controllers.Controller)
....
@expose(template='.templates.newthing')
def newthing(self, tg_errors=None):
if not identity.current.anonymous:
redirect('edit_user')
if tg_errors:
turbogears.flash(_('There was a problem with the data
submitted.'))
return dict(form=new_user_form, action='./create',
submit_text=_('Create Account'))
@expose()
@validate(form=new_thing_form)
@error_handler(new)
def foo(self, name, text):
thing = Thing(name=name,text=text)
thing.save()
session.flush()
raise redirect('/things/%s' % thing.id)
@expose(template='my_project.templates.index')
def index(self, thing_id, tg_errors=None):
thing=None
if not thing_id:
thing = Thing.get(thing_id)
return dict(thing=thing)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---