Check out the github page of djenerics at https://github.com/nrocco/djenerics
installation
You can use pip to install the package:
$ pip install djenerics
Then add it to the list of installed apps:
INSTALLED_APPS = (
'djenerics'
)
What is included?
model mixins
The following mixins are available for your model classes:
Timestampable
Provides `created_at` and `updated_at` fields.
Ownerable
Provides a `owner` field which references `settings.AUTH_USER_MODEL`
view mixins
The following mixins are available for your view classes:
SelectRelatable
Provides a class variable `select_related` that allows you to provide a
tuple or list of related models to perform a select_related on.
django-rest-framework filter backend
A custom filter backend that provides a generic filter query string parameter.
Convert a search query into a dictionary.
A search query like this one:
party: stakker is akker category:"hiha hoi"
Will be converted to a python dict:
{
'category': 'hiha hoi',
'party': None,
'search': 'stakker is akker'
}
It uses a regular expression to split every token on the :
separator instead of using the string.split() function. This is
important to distinguish between the following use cases:
- 'party:' => {'party': None}
- 'party:tester' => {'party': 'tester'}
- 'party: tester' => {'search': 'party: tester'}
django-rest-framework serializer mixins
The following mixins are available for your serializer classes:
Projectable
Gives your api consumers the ability to control what fields are included in
the api response using a configurable query string parameter (defaults to
`_fields`).
E.g. a `GET /resources?_fields=name,description,count` will only return the
specified 3 fields of the `resource`.
Ownerable
Limit the related field options to only those records owned by the current
logged in user.