Vedo che c'è un progetto chiamato djangorestframework-camel-case, che consente di utilizzare JavaScript-ish camelCase con campi underscore_cased nei serializzatori Django REST. Quindi, in sostanza, posso inviare:camelCase dati POST in Django REST Framework
{
"camelCase": "foo"
}
E riceverlo con i seguenti Serializer:
class MySerializer(serializers.Serializer):
session_id = serializers.CharField()
fa qualcosa di simile per i dati POST esiste? Quindi posso inviare camelCase=foo
via POST e riceverlo in un campo underscore_case nel mio serializzatore?
Ho provato a implementare il mio parser sulla base di 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")
...
E, dopo aver aggiunto al DEFAULT_PARSER_CLASSES
in settings.py, mentre initialized
viene stampata, parse
non è. Quindi, in caso di dati POST, il parser application/x-www-form-urlencoded
non viene utilizzato affatto.
Dal Serializzatori sono utilizzati così:
Serializer(data=request.data)
sto pensando di sottoclassi Serializzatore e la modifica data
prima che viene ulteriormente elaborato, o addirittura modificarlo prima di creare un serializzatore. Ma quello che sto chiedendo è un modo più conveniente, lavorando per tutti i serializzatori, senza sottoclassi.