Проверить тело запроса POST в Django - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть представление в django, которое регистрирует клиента, и у меня есть модель для клиента и форма, которая выглядит следующим образом:

from django.forms import ModelForm
from api.models.client import Client


class SignUpForm(ModelForm):
    class Meta:
        model = Client
        fields = ['first_name', 'last_name']

На мой взгляд, я хотел бы проверить данные взапрос, но моя проблема в том, что параметры в запросе являются camelCase, а не snake_case, поэтому, когда я пытаюсь проверить данные, они не работают.

def sign_up(request):
    body = json.loads(request.body)
    form = SignUpForm(body)
    print(form.is_valid())
    return HttpResponse('this is a test response')

Есть ли чистый способ заставить эту работу? И это правильный способ сделать то, что я пытаюсь сделать?

1 Ответ

1 голос
/ 05 ноября 2019

Вы можете перебирать ключи тела, использовать регулярное выражение для переименования ключа и добавления в новый словарь.

def camel_to_snake(val):
    return re.sub('([A-Z]+)', r'_\1', val).lower()

body = json.loads(request.body)
new_body = {camel_to_snake(k): v for k, v in body.items()}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...