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 [email protected].
For more options, visit https://groups.google.com/d/optout.