I don't understand here is my db :
from gluon.tools import Auth, Crud, Service, PluginManager, prettydate
auth = Auth(db, hmac_key=Auth.get_or_create_key())
crud, service, plugins = Crud(db), Service(), PluginManager()
db.define_table(
auth.settings.table_user_name,
Field('Surnom', length=128, default=''),
Field('email', length=128, default='', unique=True), # required
Field('password', 'password', length=512,# required
readable=False, label='Password'),
Field('Skills','list:reference SkillUser',default=None),
Field('Items','list:reference Item',default=None),
Field('registration_key', length=512,# required
writable=False, readable=False, default=''),
Field('reset_password_key', length=512,# required
writable=False, readable=False, default=''),
Field('registration_id', length=512, # required
writable=False, readable=False, default=''))
## do not forget validators
custom_auth_table = db[auth.settings.table_user_name] # get the
custom_auth_table
custom_auth_table.Surnom.requires = \
IS_NOT_EMPTY(error_message=auth.messages.is_empty)
custom_auth_table.password.requires = [CRYPT()]
custom_auth_table.email.requires = [
IS_EMAIL(error_message=auth.messages.invalid_email),
IS_NOT_IN_DB(db, custom_auth_table.email)]
Items is at default = none
here is my default.py :
def ensurefirstuser(Surnom, email, password):
users = db(db.auth_user.email == email).select()
if users:
user_id = users[0].id
created = False
if settings.debug_ensure_first_user == True:
print ('found user_id so created equals %s') % created
return (user_id, created)
else:
my_crypt = CRYPT(key=auth.settings.hmac_key)
crypt_pass = my_crypt(password)[0]
id_user = db.auth_user.insert(
Surnom=Surnom,
email=email,
password=crypt_pass,
)
created = True
if settings.debug_ensure_first_user == True:
print ('creating user_id')
return (id_user, created)
def invitation():
form=FORM("Code Invitation :", INPUT(_name='invitation'),"<Email
:",INPUT(_name='email'), INPUT(_type='submit'))
if form.process(onvalidation=verif_invitation).accepted and
form.vars.invitation != None :
print "toto"
user =
ensurefirstuser("john_doe",form.vars.email,form.vars.invitation)
# the error is above visibly
auth.user = Storage(auth.settings.table_user._filter_fields(user,
id=True))
auth.environment.session.auth = Storage(user=user,
last_visit=request.now,
expiration=auth.settings.expiration)
redirect(URL('inscription'))
return dict(form=form)
but i've made the skills or the items unnecessary why does it still
complain ?
Regards
Bussiere