Джанго отдых плохой запрос ошибка - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть модель:

class Scenario(models.Model):
    tasks = models.ManyToManyField(Task, blank=True)

Его сериализатор:

class ScenarioSerializer(serializers.ModelSerializer):

    class Meta:
        model = Scenario
        fields = '__all__'

и представление для создания сценария:

@api_view(['GET', 'POST'])
def scenarios_list(request):
    """
    List all scenarios, or create a new.
    """
    if request.method == 'GET':
        scenarios = Scenario.objects.all()
        serializer = ScenarioSerializer(scenarios, many=True)
        return Response(serializer.data)

    elif request.method == 'POST':
        serializer = ScenarioSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        else:
            return Response(
                serializer.errors, status=status.HTTP_400_BAD_REQUEST)

Я отправляю следующие данные из моего интерфейса:

[
    {id: 3, title: "Three", how_often: "DS", how_important_task: "EI", role: "Lorem", …},

    {id: 1, title: "One", how_often: "MO", how_important_task: "RI", role: "Lorem", …},

    {id: 6, title: "Six", how_often: "WO", how_important_task: "EI", role: "", …},

    {id: 4, title: "Four", how_often: "", how_important_task: "", role: "", …}
]

Что бросает мне Плохую ошибку. Что я делаю не так?

1 Ответ

0 голосов
/ 25 апреля 2018

Измените полезную нагрузку вашего запроса на dict подобный объект, как показано ниже (это был list в вопросе), и отправьте

{title: "Three", how_often: "DS", how_important_task: "EI", role: "Lorem", …}


Я удалил ключ id иззапрашивать полезную нагрузку, поскольку в соответствии с вашим сериализатором и моделями вам не нужно указывать id при создании новых объектов,

...