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 web2py@googlegroups.com 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 -~----------~----~----~----~------~----~------~--~---