Trying to implement a simple mvc or how do you pass the REQUEST o bject when doing a redirect?
I have a product that I am attempting to do something like this: def controller(self): """ This will implement a MVC type paradigm for user administration. """ req = self.REQUEST f = req.form controldict = {'adduser': self.CreateUser, 'viewuser': self.ViewUser, 'edituser': self.EditUser, 'None': MessageDialog(title='Error: Action not Recognized', message='The action you took is not recognized', action='Admin')} controldict[f.get('controlaction','None')]() It would work except calling the dtml method like this causes there to be no traverse_subpath in the REQUEST object and I use that like this: def parseSubPath(self): """ Parses the subpath and gives us access to the variables contained therein """ set = self.REQUEST.set subpath = self.REQUEST.traverse_subpath idx = len(subpath)-1 jdx = 0 while jdx < idx: set(subpath[jdx],subpath[jdx+1]) jdx += 1 this allows me to put variables in the URL (it seems like there is another way of doing this but.... i don't know what it is). This code is called in standard_html_header and breaks with the controller code above. So, I either need to fix the parseSubPath code (there is a LOT of code that uses this so major refactoring to change) or I could change the controller method to do a redirect but then I need to be able to pass the REQUEST object from the controller method to the redirected object. The question is, how do you pass the REQUEST object when doing a redirect? Scott Pierce Sonopress US - Digital Services 828.658.6157
Pierce, Scott writes:
I have a product that I am attempting to do something like this:
def controller(self): """ This will implement a MVC type paradigm for user administration. """ req = self.REQUEST f = req.form
controldict = {'adduser': self.CreateUser, 'viewuser': self.ViewUser, 'edituser': self.EditUser, 'None': MessageDialog(title='Error: Action not Recognized', message='The action you took is not recognized', action='Admin')}
controldict[f.get('controlaction','None')]()
It would work except calling the dtml method like this causes there to be no traverse_subpath in the You should *NEVER* call DTML objects without its two positional arguments. Read "Calling DTML objects" in
<http://www.dieter.handshake.de/pyprojects/zope/book/chap3.html> Dieter
participants (2)
-
Dieter Maurer -
Pierce, Scott