Views¶
-
djburger.views.
rule
(**kwargs)[source]¶ Factory for _Rule objects
- Any kwarg can contain str which point where function can get value for kwarg.
- Some kwargs can contain None.
- Example::
>>> rule( ... decorators=[login_required, csrf_exempt], ... prevalidator=SomeDjangoForm, ... prerenderer='postrenderer', ... # ^ here `prerenderer` point to `postrenderer` ... controller=some_controller, ... postvalidator=None, ... # ^ here post-validator is missed ... postrenderer='renderer', ... renderer=djburger.renderers.JSON(), ... )
Parameters: - decorators (list) – list of decorators.
- parser (callable) – parse request body. djburger.parsers.Default by default.
- prevalidator (djburger.validators.bases.IValidator) – validate and clean user params.
- prerenderer (callable) – renderer for pre-validation errors.
- controller (callable) –
- postvalidator (djburger.validators.bases.IValidator) – validate and clean response.
- postrenderer (callable) – renderer for post-validation errors.
- renderer (callable) – renderer for successfull response.
Returns: rule.
Return type: djburger._Rule
Raises: TypeError – if missed c or r.
-
class
djburger.views.
ViewBase
[source]¶ Base views for DjBurger usage.
Parameters: - request (django.http.request.HttpRequest) – user request object.
- **kwargs – kwargs from urls.py.
Returns: django response.
Return type: django.http.HttpResponse
-
dispatch
(request, **kwargs)[source]¶ Entrypoint for view
- Select rule from rules.
- Decorate view
- Call validate method.
Parameters: - request (django.http.request.HttpRequest) – user request object.
- **kwargs – kwargs from urls.py.
Returns: django response.
Return type: django.http.HttpResponse
-
get_data
(request)[source]¶ Extract data from request by parser.
Parameters: request (django.http.request.HttpRequest) – user request object. Returns: parsed data.
-
get_validator_kwargs
(data)[source]¶ Get kwargs for validators
Parameters: data – data which will be validated. Returns: kwargs for (post)validator. Return type: dict
-
make_response
(data)[source]¶ Make response by renderer
Parameters: data – cleaned and validated data from controller. Returns: django response. Return type: django.http.HttpResponse
-
request_invalid
(validator, status_code)[source]¶ Return result of prer (renderer for pre-validator errors)
Parameters: - validator (djburger.validators.bases.IValidator) – validator object with errors attr.
- status_code (int) – status code for HTTP-response.
Returns: django response.
Return type: django.http.HttpResponse
-
request_valid
(data, **kwargs)[source]¶ Call controller.
Get response from controller and return result of validate_response method.
Parameters: - data – cleaned and validated data from user.
- **kwargs – kwargs from urls.py.
Returns: django response.
Return type: django.http.HttpResponse
-
response_invalid
(validator, status_code)[source]¶ Return result of postr (renderer for post-validation errors).
Parameters: - validator (djburger.validators.bases.IValidator) – validator object with errors attr.
- status_code (int) – status code for HTTP-response.
Returns: django response.
Return type: django.http.HttpResponse
-
response_valid
(validator)[source]¶ Return result of make_response. This method calls only if postv is not None.
Parameters: validator (djburger.validators.bases.IValidator) – validator object with cleaned_data attr. Returns: django response. Return type: django.http.HttpResponse
-
subvalidation_invalid
(validator, status_code=200)[source]¶ Return result of postr (renderer for post-validation errors).
Parameters: - validator (djburger.validators.bases.IValidator) – validator object with errors attr.
- status_code (int) – status code for HTTP-response.
Returns: django response.
Return type: django.http.HttpResponse
-
validate_request
(request, **kwargs)[source]¶ - Call request_valid method if validation is successfull or missed.
- Call request_invalid method otherwise.
Parameters: - request (django.http.request.HttpRequest) – user request object.
- **kwargs – kwargs from urls.py.
Returns: django response.
Return type: django.http.HttpResponse
-
validate_response
(response)[source]¶ Validate response by postv (post-validator)
- Return make_response method result if post-validator is missed.
- Validate data by post-validator otherwise and call…
- response_valid if validation is passed
- or response_invalid otherwise.
Parameters: response – unvalidated data from controller. Returns: django response. Return type: django.http.HttpResponse