Version 1 (modified by 14 years ago) ( diff ) | ,
---|
Table of Contents
S3XRC - S3Request
S3Request and Method Handlers
When method handlers are called by the REST interface, they get a S3Request object passed as the first argument, usually named "r" or "jr":
def method_handler(r, **attr):
This S3Request instance represents the request to be executed, and it contains references to all data necessary to perform the requested action.
Note: All method handlers receive the same list of arguments, regardless of whether they are standard CRUD or custom method handlers.
Attributes of the S3Request
The following attributes are set during initialisation of an S3Request object, no further call is required.
Controller Attributes
rc | the resource controller object (S3ResourceController) |
request | the original web2py request (Storage) |
session | the current session (Storage) |
response | the web2py response (Storage) |
Request Attributes
representation | the current representation of this request (string, lowercase) |
http | the HTTP method of this request (string, always uppercase!) |
extension | the extension found in the original request (string, lowercase) |
method | the method of the request if not HTTP (string, always lowercase) |
custom_action | the custom method handler for the request (function or lambda) |
Primary Resource Attributes
prefix | the prefix (=module name) of the requested resource (string) |
name | the name of the requested resource, without prefix (string) |
tablename | the name of the primary table (string) |
table | the primary table (Table) |
id | the ID of the primary record (int) |
record | the primary record (Row) |
Component Resource Attributes
component | the requested component, if any (ObjectComponent) |
pkey | the primary key of the Resource/Component join (string) |
fkey | the foreign key of the Resource/Component join (string) |
component_name | the name of the component without prefix (string) |
component_id | the ID of the component record as of the request, if any (int) |
multiple | Flag indicating that multiple component records are allowed (boolean) |
Error Indicators
error | the last error message (string) |
invalid | Flag indicating this request as invalid (boolean) |
badmethod | Flag indicating a bad method error (boolean) |
badrecord | Flag indicating a invalid record ID error (boolean) |
badrequest | Flag indicating an unqualified request error (boolean) |
ObjectComponent contains:
- prefix, name, tablename, table and attr of the component
- attr contains:
- multiple Multiple-flag
- editable, deletable and listadd
- list_fields, rss, main and extra
- onaccept, onvalidation, delete_onaccept and delete_onvalidation
- methods: set_attr() and get_attr()
Methods of the S3Request
Magic URLs
here(representation=None)
- returns the URL of the current request
there(representation=None)
- returns the URL of a HTTP GET request for the same resource
same(representation=None)
- returns the URL of the current request with the primary record ID replaced by the string literal '[id]'
other(method=None, record_id=None, representation=None)
- returns the URL of a request with another method and record ID, but for the same resource
Other functions
target()
- returns the target table of the current request as tuple of (prefix, name, table, tablename)