Camel case JSON support for Django REST framework
Project description
Django REST Framework JSON CamelCase
Camel case JSON support for Django REST framework.
Note: This is a replacement for djangorestframework-camel-case which seems currently unmaintained.
Installation
At the command line::
$ pip install djangorestframework-camel-case2
Add the render and parser to your django settings file.
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'djangorestframework_camel_case2.render.CamelCaseJSONRenderer',
# Any other renders
),
'DEFAULT_PARSER_CLASSES': (
'djangorestframework_camel_case2.parser.CamelCaseJSONParser',
# Any other parsers
),
}
Swapping Renderer
By default the package uses rest_framework.renderers.JSONRenderer
. If you want
to use another renderer (the only possible alternative is
rest_framework.renderers.UnicodeJSONRenderer
, only available in DRF < 3.0), you must specify it in your django
settings file.
# ...
JSON_CAMEL_CASE = {
'RENDERER_CLASS': 'rest_framework.renderers.UnicodeJSONRenderer'
}
# ...
Underscoreize Options
As raised in https://github.com/krasa/StringManipulation/issues/8#issuecomment-121203018 there are two conventions of snake case.
# Case 1 (Package default)
v2Counter -> v_2_counter
fooBar2 -> foo_bar_2
# Case 2
v2Counter -> v2_counter
fooBar2 -> foo_bar2
By default, the package uses the first case. To use the second case, specify it in your django settings file.
REST_FRAMEWORK = {
# ...
'JSON_UNDERSCOREIZE': {
'no_underscore_before_number': True,
},
# ...
}
Alternatively, you can change this behavior on a class level by setting json_underscoreize
:
from djangorestframework_camel_case2.parser import CamelCaseJSONParser
from rest_framework.generics import CreateAPIView
class NoUnderscoreBeforeNumberCamelCaseJSONParser(CamelCaseJSONParser):
json_underscoreize = {'no_underscore_before_number': True}
class MyView(CreateAPIView):
queryset = MyModel.objects.all()
serializer_class = MySerializer
parser_classes = (NoUnderscoreBeforeNumberCamelCaseJSONParser,)
Running Tests
To run the current test suite, execute the following from the root of the project
$ python -m unittest discover
Changelog
[Unreleased]
[0.2.4]
- Added
json_underscoreize
toCamelCaseJSONParser
as class attribute to support variables with and without an underscore before a number in the same project - Fixed import of six in combination with DRF 3.10
[0.2.3]
Fixed
- Fixed missing CHANGELOG.md in package on pypi
[0.2.2]
Changed
- Update README
Removed
- Old README.rst and HISTORY.rst
[0.2.1]
Added
- Support for generators and other iterables
- JSON_UNDERSCOREIZE option to change behaviour of underscoize function
Changed
- Changed name of the package and README
[0.1.0] - 2013-12-20
- First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for djangorestframework-camel-case2-0.2.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3417182ad4274bf84d0ff27d10bf75e5218c4b32ab3e0f6df4d8aa2c686cf91b |
|
MD5 | ca4921e2bd8e5d86f39b426aaafb66dc |
|
BLAKE2b-256 | 0954cccdede20b0a4796d5dff00182e1ecab55612ec2ac399b00fc82a222cab4 |
Hashes for djangorestframework_camel_case2-0.2.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 153b80c42f7a40d789f9b149516adb8ff44ebe25491392c7027a2ee600b2b1b2 |
|
MD5 | e0c247443c38eb57d8ae6ac665063b0f |
|
BLAKE2b-256 | 8ee50761147f8f1ff5cc58a686c91e6df38d4ac65995ca890ab0df58b90cd605 |