When using validate_and_update() or validate_and_insert() on a table with a list:reference field, the request crashes after timeout with:
File "web2py/gluon/globals.py", line 270, in body
raise HTTP(400, "Bad Request - HTTP body is incomplete")
The request crashes because there is an hidden exception with the isinstance function:
isinstance() arg 2 must be a class, type, or tuple of classes and types
When no using GAE, the GoogleDatastoreAdapter variable is None, so isinstance crash.
See the last line of pydal/adapters/__init__.py
This is a regression intruduced after the v2.9.12.
LOAD didn't work on action decorated with @request.restful() when args and/or vars are passed because the restful method is called with the main "request" object (browser url action) instead of the "other_request" object used by LOAD.
So I have injected the restful method with the good object context.
It's a bit nasty, so if someone knows how to do it better, I'm happy.
Fix no error return with IS_STRONG validator because it returns a gluon.html.XML instead of str, so when pushed to response.errors that is a Row, it isn't display because Row object filters his output and doesn't support XML objects.
Better solution than my last commit for the restful method by inject the real restful method.
We can now call LOAD() on a @request.restful() decorated action.
When you call LOAD() on a controller who has some actions decorates with @request.restful(), it fail with:
@request.restful()
TypeError: 'NoneType' object is not callable
=> because LOAD use other_request variable who are a Request but without all methods and therefore without restful method.
I've just mock the restful method but I think that the real restful method will be better...