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

  1. Select rule from rules.
  2. Decorate view
  3. 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:
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:
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:
Returns:

django response.

Return type:

django.http.HttpResponse

validate_request(request, **kwargs)[source]
  1. Call request_valid method if validation is successfull or missed.
  2. 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)

  1. Return make_response method result if post-validator is missed.
  2. 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