Как в Django сделать извлечение данных из POST-запроса в json?

Будет форма обратной связи(ее делаю не я). Реализация при помощи стандартных джанговских форм была отклонена.

Встал вопрос как получить post-запрос из которого данные возвращались в формате json, а далее из json'a пересохранялись отдельно в каждый объект модели(чтобы можно было в админке просматривать информацию, оставленную пользователями)?

Честно, не понимаю, как это сделать.
  • Вопрос задан
  • 9293 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Было бы здорово, если бы вы привели в своём вопросе пример формы, с которой надо работать, и формат получаемого json.

Всё должно быть просто, получаете от фронтенда json, преобразовываете его в словарь с помощью json.loads() и передаёте результат в конструктор формы так же, как обычно передаёте request.POST
import json
from django import forms

class SomeForm(forms.Form):
    name = forms.CharField(label=u'Name', max_length=25)

def some_view(request):
    json_string = request.POST.get('json_data')
    form_data = json.loads(json_string)[0]
    f = SomeForm(form_data)
    if f.is_valid():
        name = f.cleaned_data['name']
        # ... Работа с данными ...
    else:
        # ... Обработка ошибки ...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
maximkv25
@maximkv25
web-developer
def example(request):
    try:
        data = json.loads(request.body.decode())
    except ValueError:
        return JsonResponse({
            'error': 'bla bla bla',
        })
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы