Skip to main content

Camel case JSON support for Django REST framework.

Project description

Django REST Framework JSON CamelCase

https://travis-ci.org/vbabiy/djangorestframework-camel-case.png?branch=master https://badge.fury.io/py/djangorestframework-camel-case.svg

Camel case JSON support for Django REST framework.

Installation

At the command line:

$ pip install djangorestframework-camel-case

Add the render and parser to your django settings file.

# ...
REST_FRAMEWORK = {

    'DEFAULT_RENDERER_CLASSES': (
        'djangorestframework_camel_case.render.CamelCaseJSONRenderer',
        # Any other renders
    ),

    'DEFAULT_PARSER_CLASSES': (
        # If you use MultiPartFormParser or FormParser, we also have a camel case version
        'djangorestframework_camel_case.parser.CamelCaseFormParser',
        'djangorestframework_camel_case.parser.CamelCaseMultiPartParser',
        'djangorestframework_camel_case.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,
    },
    # ...
}

Running Tests

To run the current test suite, execute the following from the root of he project:

$ python -m unittest discover

License

  • Free software: BSD license

History

0.1.0 (2013-12-20)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

djangorestframework-camel-case-1.0.3.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file djangorestframework-camel-case-1.0.3.tar.gz.

File metadata

  • Download URL: djangorestframework-camel-case-1.0.3.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.1 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/2.7.10

File hashes

Hashes for djangorestframework-camel-case-1.0.3.tar.gz
Algorithm Hash digest
SHA256 5b957f9cf16730f153a0ab4add9ff17fb41b7fceaa7edad29b0536b515bffd16
MD5 c404ea9deec13e93fab93d980ddd7a5b
BLAKE2b-256 3837c1fbb6e3a6dc60f525c72b5a494812cb720bb710ccb3181d26729285b2c4

See more details on using hashes here.

File details

Details for the file djangorestframework_camel_case-1.0.3-py2-none-any.whl.

File metadata

  • Download URL: djangorestframework_camel_case-1.0.3-py2-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.1 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/2.7.10

File hashes

Hashes for djangorestframework_camel_case-1.0.3-py2-none-any.whl
Algorithm Hash digest
SHA256 4bb2e41fb8a5d3745e20c5ee0842ebc6f6bac602b3286c3dd913b01760a2abb0
MD5 5bb6db86411863a8bfa853daf00f5828
BLAKE2b-256 b12c72a726b6b247b8ee536061cad6df0b77b32f7789bac1e2551ba579973416

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page