Thanks. I'm also wondering where the exposed URL's are located (/user/ login, /user/register, etc.). Can I customize these views?
On Feb 23, 9:34 pm, Anthony <abasta...@gmail.com> wrote: > The user() function is called with an additional argument in the URL (e.g., > /user/login, /user/register, etc.). This extra argument is accessible via > request.args[0]. Now, the Auth class has a __call__ method, so the auth > object is callable. When you call it via auth(), the __call__ method > essentially acts like a router -- it reads request.args[0] and then calls > whatever Auth method is specified (or it redirects to /user/login if there > is no request.args[0]). You can see this > here:http://code.google.com/p/web2py/source/browse/gluon/tools.py#1143. In > particular: > > return getattr(self,args[0])() > > gets the Auth method named in args[0] and calls that method. > > Note, you can also manually create your own actions (or do your own routing > based on request.args) and call the individual Auth methods directly. For > example, you could create a dedicated "register" action via: > > def register(): > return dict(form=auth.register()) > > Crud works in a similar way. > > Anthony > > > > > > > > On Thursday, February 23, 2012 8:34:47 PM UTC-5, davidkw wrote: > > > I'm reading through the tutorial and just came across the part that > > adds the code: > > > from gluon.tools import Auth > > auth = Auth(db) > > auth.define_tables() > > > def user(): > > return dict(form=auth()) > > > And suddenly login, register, etc were enabled. This is the first > > "magic" I've come across in web2py that I don't understand well. I > > understand that auth.define_tables() creates the tables for the user > > data, but I'm not sure how def user():... suddenly adds all the > > registration and login pages. > > > Could someone give me a quick walkthrough of what's going on?