Actually this does not happen with SQLFORM since it is smart enough to
figure out that the current record should be included when enforcing
IS_NOT_IN_DB(...).
In your case I see you are using a normal FORM instead of SQLFORM. In
this case the solution is
IS_NOT_IN_DB(db(db.users.id!=user_id),'users.email')
i.e. make sure not other use (but user_id) has this email.
Massimo
On Nov 23, 11:35 pm, voltron <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> I allow users to edit their account settings in a web application. One
> of the fields is their email address. I put a constraint on the field
> stating that it should never be empty, null and unique. I came across
> the situation that a user might want to change her/his email address,
> the problem is, using SQLFORM, the form and database validation kicks
> in and notifies the user that the email exists already and cannot be
> updated even though it is unique and belongs to the user as in:
>
> # snippet
>
> TR(TD(T("Email"), _class="label"), INPUT(_name="email",
> _value = user[0].email, _class = "text_input", requires=
> [IS_NOT_EMPTY(), IS_NOT_IN_DB(db,'users.email'), IS_EMAIL()])),
>
> form.components[0].components[1].components[1].components[0].attributes
> ['requires'][1].error_message = T("This email address exists already,
> please choose another")
>
> id=db.users.update(
> email = form.vars.email,
> password = form.vars.password
> )
>
> I could, just require that an email is given and not requesting it to
> be unique, but I think that thats a security risk.
>
> I would not like to make extensive and wasteful checks again just for
> that field. Is there a clean way to allow a user to update her email
> address only it it does not exist and even if it existed not complain
> only if it belonged to the user in question before?
>
> Thanks
>
> Thaanks
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---