Hello,
I have this grid:
grid = SQLFORM.grid(
query,
create=create,
csv=False,
deletable=deletable,
details=False,
editable=editable,
# Disable delete checkbox in edit form.
editargs=dict(deletable=False),
field_id=db.equipment.id,
fields=fields,
headers={'sn_counter.name': T('SN counter')},
links=[
lambda row: A(
T('Pow. supp.'),
_href=URL(
'single_equip',
'set_session_vars',
args=[row.equipment.id],
vars={
'table_name': 'equip_ps',
'parent_id_field_name': 'ps_id',
'parent_table_name': 'power_supply',
# Only sid because next page has search
# (which uses vars).
'sid': request.vars.sid,
},
),
_id='power_supply',
),
...
Definitions above the grid are
query = db.equipment.sn_counter_id == db.sn_counter.id
create, deletable and editable are True/False according to the user
permissions.
ondelete and onvalidation are a function/None according to the user
permissions.
The links on the grid work fine, new record works fine, but edit returns a
strange AttributeError.
I was able to identify the problem has been the args argument.
If I change
args=[row.equipment.id],
with
args=[str(row).split("'id': ")[1].split('},')[0]],
everything works, including edit. What I'm doing is extracting the id from
the string converted row.
I have no idea why this strange error occurs.
Any ideas?
The complete traceback:
ERROR:web2py:Traceback (most recent call last):
File "c:\web2py\gluon\restricted.py", line 219, in restricted
exec(ccode, environment)
File "c:\web2py\applications\ajc\controllers/equipment.py", line 398, in <
modu
le>
File "c:\web2py\gluon\globals.py", line 421, in <lambda>
self._caller = lambda f: f()
File "c:\web2py\gluon\tools.py", line 3877, in f
return action(*a, **b)
File "c:\web2py\applications\ajc\controllers/equipment.py", line 341, in
index
user_signature=False,
File "c:\web2py\gluon\sqlhtml.py", line 2610, in grid
res = DIV(buttons(view=details, record=record),
File "c:\web2py\gluon\sqlhtml.py", line 2532, in buttons
elif link(record):
File "c:\web2py\applications\ajc\controllers/equipment.py", line 236, in <
lamb
da>
args=[row.equipment.id],
File "c:\web2py\gluon\packages\dal\pydal\objects.py", line 116, in
__getattr__
return self.__getitem__(k)
File "c:\web2py\gluon\packages\dal\pydal\objects.py", line 100, in
__getitem__
v = self[key] = lg(key)
File "c:\web2py\gluon\packages\dal\pydal\objects.py", line 2490, in
__call__
raise AttributeError()
AttributeError
My env:
web2py 2.18.5
Python 3.7.1 x86
Firefox 66.0.3 x64
Windows 7 Pro x64 SP1+all upd
Thanks,
JM
--
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.