Я вижу, что существует проект под названием djangorestframework-camel-case, который позволяет использовать JavaScript-ish camelCase с полями underscore_cased в сериализаторах Django REST. Так, в принципе, я могу отправить:данные CamelCase POST в Django REST Framework
{
"camelCase": "foo"
}
И получить его с помощью следующей Serializer:
class MySerializer(serializers.Serializer):
session_id = serializers.CharField()
Существует ли что-то подобное для данных POST? Итак, я могу отправить camelCase=foo
через POST и получить его в поле подчёркивания в моем сериализаторе?
Я попытался реализации моего собственного парсера на основе FormParser:
class CamelCaseFormParser(FormParser):
media_type = 'application/x-www-form-urlencoded'
def __init__(self):
print("initialized")
def parse(self, stream, media_type=None, parser_context=None):
print("parse")
...
И, после добавления его в DEFAULT_PARSER_CLASSES
в settings.py, в то время как на самом деле initialized
распечатан, parse
нет. Таким образом, кажется, что в случае POST-данных анализатор application/x-www-form-urlencoded
не используется вообще.
Поскольку сериализаторы используются так:
Serializer(data=request.data)
Я думал о подклассов Serializer и модификации data
прежде чем он будет обработан в дальнейшем, или даже изменить его перед созданием Serializer. Но то, что я прошу, более удобный способ, работающий для всех Serializers, без их подклассификации.