In one action, I generate the following link for the user to edit an item:

A('edit',
                              _href=URL('edit_joke',
                                    vars=dict(id=joke.joke.id, 
backto=self.request.controller + '/' + self.request.function,
                                        page=self.page, 
moderate=self.request.get_vars.moderate)
                                    ),
                              _class='button')

The edit_joke action is in the controller full.py.  edit_joke includes:  
 response.view = 'default/joke_basic.html'
    return dict(form = form, topline = 'Edit this joke')

Clicking on the button will traverse to this url: 
 
http://127.0.0.1:8000/pyjokes/full/edit_joke?backto=full%2Fmanage_jokes&id=12&moderate=None&page=0
 
  
(Note that even though I didn't include the controller in the URL helper 
func, web2py knows the current controller.  That is good.  I doubt that I 
need to refer to the controller in my backto arg either...)

However, when I click on the button, web2py tries to reference the wrong 
view and generates an invalid path:
invalid view (full/edit_joke.html)

Why is response.view being ignored?  The "default" in the path to the view 
refers to the path for html templates:  views/default/joke_basic.html.  It 
works for other actions that use the same view.  It is only when I follow 
the anchor link in code in a module.  But, I have a delete button in the 
same page that also refers to an action in the same controller--it works. 
 Also, pages in my response.menu that also use this template all work.  All 
the actions include an explicit response.view = ...   

Why doesn't it work in this case?


-- 



Reply via email to