Hmm... doesn't seem to work.
Controller below. As you can see, I've solved the puzzle to my
satisfaction, but I would like to know why the call to oncreate
misfires.
def handle_create(form):
# never happens
print 'hello, world'
def index():
fields = [db.owner.name, db.dog.id]
db.dog.represent = '%(name)s'
# Just making sure we can detect a new owner request
if len(request.args) > 2 and request.args[-1] == 'owner' and\
request.args[-2] == 'new':
print 'new one'
form = SQLFORM.smartgrid(
db.owner,
ui = 'jquery-ui',
deletable=False,
oncreate = dict(owner=[handle_create]),
)
# this works
# also how I have detected successful creates in the past
if len(request.args) > 2 and request.args[-1] == 'owner' and\
request.args[-2] == 'new' and form[2].process().accepted:
print 'accepted it'
return dict(form=form)
On Dec 22, 11:56 pm, Cliff <[email protected]> wrote:
> Thanks.
>
> That's pretty close to what I was using, but I didn't have the syntax
> just right.
>
> Cliff Kachinske
>
> On Dec 22, 6:06 pm, Adi <[email protected]> wrote:
>
>
>
>
>
>
>
> > this is what i'm doing:
>
> > in a smartgrid use oncreate = dict(purchase_order=[po_oncreation]),
>
> > that takes you to your function after record is created, where you know the
> > id. The argument you use is form.
>
> > def po_oncreation(form):
> > auth.archive
> > last_id = form1.vars.id
> > ...