This may be a stupid question but...
Why are you not using form.custom ?
{{form.custom.start}}
<fieldset>{{form.custom.email.widget}}</fieldset>
--
Thadeus
On Mon, May 24, 2010 at 11:15 PM, Thadeus Burgess <[email protected]> wrote:
> Wait... Doesn't web2py already have this built in?
>
> Maybe I don't understand the question...
>
> Using a plain vanilla `form = auth()` You get a register form...
>
> http://thadeusb.com/admin/user/register
>
> --
> Thadeus
>
>
>
>
>
> On Mon, May 24, 2010 at 10:57 PM, Thadeus Burgess <[email protected]>
> wrote:
>> Stick the following code in a controller
>>
>>
>> import copy
>>
>> user_table = [copy.copy(f) for f in db.auth_user]
>> form = SQLFORM.factory(
>> *user_table,
>> Field('password2', 'password', length=512,
>> requires=db.auth_user.password.requires),
>> )
>>
>> if form.accepts(request.vars, session):
>> if form.vars.password == form.vars.password2:
>> user = db.auth_user.insert(
>> first_name = form.vars.first_name,
>> last_name = form.vars.last_name,
>> username = form.vars.username,
>> password = form.vars.password,
>> registration_key = web2py_uuid(),
>> )
>>
>> if auth.settings.create_user_groups:
>> group_id = auth.create_group("user_%s" user.id)
>>
>> # etc etc for sending mail
>>
>> # to auto log them in
>> session.auth = Storage(user = user, last_visit = request.now,
>> expiration = auth.settings.expiration)
>> else:
>> form.errors.password = form.errors.password2 = "Passwords do not
>> match"
>>
>> Of course, you lose some of the finer things such as sending emails,
>> which could be added by looking at tools.py
>>
>> --
>> Thadeus
>>
>>
>>
>>
>>
>> On Mon, May 24, 2010 at 7:39 PM, weheh <[email protected]> wrote:
>>> @mdp: It isn't obvious to me how to mix the auth code with
>>> SQLFORM.factory and accept. The problem is that auth is such a black
>>> box that I don't know where to break into the flow of it.
>>>
>>> I believe this issue has come up enough times and been such a
>>> consistent stumbling block that I suggest you or someone else spell it
>>> out concretely (show the model, controller, and view) and put it
>>> either in the doc or in Alterego or somewhere findable. I can't
>>> imagine it's more than 20 or 30 lines of code total and would save
>>> loads of time and effort in the long run.
>>>
>>
>