Skink <[EMAIL PROTECTED]> writes: > Hi, > > I'm relatively new to django and maybe my question is stupid, but... > > Is it possible to map in urls.py some url not to function in views.py > (which has first argument with HttpRequest) but to some class method? > In that case each instance of such class would be created when session > starts and for subsequent calls would be served as self ? > > I know, I know that HttpRequest has session member and I can use it. > But maybe it would be good idea to have such url ==> class.method > mapping.
I didn't try it with django but maybe closure is the solution. Try this: <code> #!/usr/bin/env python class MyView(object): def __init__(self): self.visited = [] def index(self, *args): self.visited.append("index") print "%s.index: %r" % (self.__class__.__name__, args) return "response from index" def detail(self, *args): self.visited.append("detail") print "%s.detail: %r" % (self.__class__.__name__, args) return "response from detail" def error(self, *args): self.visited.append("error") print "%s.error: %r" % (self.__class__.__name__, args) return "response from error" def make_view(obj, methodname): def view(*args): try: return getattr(obj, methodname)(*args) except AttributeError: return obj.error(*args) return view view_obj = MyView() index = make_view(view_obj, "index") detail = make_view(view_obj, "detail") download = make_view(view_obj, "download") print index("request to index") print detail("request to detail", 25) print download("request to download", "abc", 99) print print "\n".join(view_obj.visited) </code> index, detail and download functions can be mapped in urls.py now. -- HTH, Rob -- http://mail.python.org/mailman/listinfo/python-list