Hi,

here it is : the cruel reality as is          :(

(1) the table:

db.define_table('uperson',
                Field('auth_user','reference auth_user',unique=True,requires 
= IS_NOT_IN_DB(db,'uperson.auth_user')),
                Field('country'),
                Field('age','integer'))



(2) the actions:

>>> db.uperson.insert(auth_user=1,age=100,country='fr')
1L
>>> db.commit()
>>> r = db.uperson.validate_and_update(db.uperson.auth_user==1,age=101)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/opt/web2py/gluon/packages/dal/pydal/objects.py", line 741, in 
validate_and_update
    response, new_fields = self._validate_fields(fields, 'update')
  File "/opt/web2py/gluon/packages/dal/pydal/objects.py", line 727, in 
_validate_fields
    value, error = self[fieldname].validate(raw_value)
  File "/opt/web2py/gluon/packages/dal/pydal/objects.py", line 1625, in 
validate
    (value, error) = validator(value)
  File "/opt/web2py/gluon/validators.py", line 696, in __call__
    row = subset.select(table._id, field, limitby=(0, 1), orderby_on_limitby
=False).first()
  File "/opt/web2py/gluon/packages/dal/pydal/objects.py", line 2002, in 
select
    return adapter.select(self.query,fields,attributes)
  File "/opt/web2py/gluon/packages/dal/pydal/adapters/sqlite.py", line 122, 
in select
    return super(SQLiteAdapter, self).select(query, fields, attributes)
  File "/opt/web2py/gluon/packages/dal/pydal/adapters/base.py", line 1273, 
in select
    sql = self._select(query, fields, attributes)
  File "/opt/web2py/gluon/packages/dal/pydal/adapters/base.py", line 1160, 
in _select
    sql_w = ' WHERE ' + self.expand(query) if query else ''
  File "/opt/web2py/gluon/packages/dal/pydal/adapters/base.py", line 945, in 
expand
    rv = op(first, second, **optional_args)
  File "/opt/web2py/gluon/packages/dal/pydal/adapters/base.py", line 839, in 
EQ
    self.expand(second, first.type))
  File "/opt/web2py/gluon/packages/dal/pydal/adapters/base.py", line 955, in 
expand
    rv = self.represent(expression, field_type)
  File "/opt/web2py/gluon/packages/dal/pydal/adapters/base.py", line 1432, 
in represent
    return str(long(obj))
ValueError: invalid literal for long() with base 10: 'None'

second attempt:

>>> db.uperson.validate_and_update(db.uperson.auth_user==1,auth_user=1,age=
102)
<Row {'errors': {'auth_user': 'Value already in database or empty'}, 'id': 
None}



-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to