Controllers¶
-
class
djburger.controllers.
List
(only_data=True, **kwargs)[source]¶ Controller based on Django ListView
- Get list of objects
- Filter list by validated data from user
- Optional pagination
Parameters: - only_data (bool) – return only filtered queryset if True, all context data otherwise. Use only_data=False with TemplateSerializerFactory.
- **kwargs – all arguments of ListView.
Returns: filtered queryset.
Return type: django.db.models.query.QuerySet
-
class
djburger.controllers.
Info
(queryset=None, model=None)[source]¶ Return one object from queryset
- Return object filtered by params from URL kwargs (like pk or slug)
- if url-pattern have kwargs.
- Return object from validated data if data have key object
- or data have only one key.
- Raise exception otherwise.
Parameters: - queryset (django.db.models.query.QuerySet) – QuerySet for retrieving object.
- model (django.db.models.Model) – Model for retrieving object.
Returns: one object from queryset or model.
Return type: django.db.models.Model
Raises: - ValueError – if can’t select params for queryset filtering.
- django.http.Http404 – if object does not exist or multiple objects returned
-
class
djburger.controllers.
Add
(model)[source]¶ Controller for adding object with validated data.
Parameters: model (django.db.models.Model) – Model for adding object. Returns: created object. Return type: django.db.models.Model
-
class
djburger.controllers.
Edit
(queryset=None, model=None)[source]¶ Controller for editing objects.
- Get object of initialized model by URL’s kwargs.
- Set params from validated data.
- Update tuple into database.
Parameters: - queryset (django.db.models.query.QuerySet) – QuerySet for editing object.
- model (django.db.models.Model) – Model for editing object.
Returns: edited object.
Return type: django.db.models.Model
Raises: django.http.Http404 – if object does not exist or multiple objects returned
-
class
djburger.controllers.
Delete
(queryset=None, model=None)[source]¶ Controller for deleting objects.
Delete object filtered by URL’s kwargs.
Parameters: - queryset (django.db.models.query.QuerySet) – QuerySet for deleting object.
- model (django.db.models.Model) – Model for deleting object.
Returns: count of deleted objects.
Return type: int
Raises: django.http.Http404 – if object does not exist or multiple objects returned
-
class
djburger.controllers.
ViewAsController
(view, method=None)[source]¶ Allow use any django view as controller.
- For CBV with render_to_response method return context.
- Return rendered response otherwise.
Parameters: - view (callable) – view.
- method (str) – optional method which will be forced for request
Returns: if possible response context or content, response object otherwise.
-
class
djburger.controllers.
pre
(validator, **kwargs)[source]¶ Decorator for input data validation before subcontroller calling
Parameters: - validator (djburger.validators.bases.IValidator) – validator for pre-validation.
- **kwargs – kwargs for validator.
Raises: djburger.exceptions.SubValidationError – if pre-validation not passed
-
class
djburger.controllers.
post
(validator, **kwargs)[source]¶ Decorator for output data validation before subcontroller calling
Parameters: - validator (djburger.validators.bases.IValidator) – validator for post-validation.
- **kwargs – kwargs for validator.
Raises: djburger.exceptions.SubValidationError – if post-validation not passed
-
djburger.controllers.
subcontroller
(controller, prevalidator=None, postvalidator=None)[source]¶ Constructor for subcontrollers If any validation failed, immediately raise SubValidationError.
Parameters: - prevalidator (djburger.validators.bases.IValidator) –
- controller (callable) –
- postvalidator (djburger.validators.bases.IValidator) –
Raises: djburger.exceptions.SubValidationError – if any validation not passed