[{"non_field_errors":["Неверные данные. Ожидали словарь, а получили int."]}

Пытаюсь отправить сообщение в мой DRF API. Но я получаю следующую ошибку. В качестве фронт-энда я использую Vue.js. Я могу получать данные без проблем. Я просто не могу записать или создать новую запись.

[{"non_field_errors":["Invalid data. Expected a dictionary, but got int."]}

Модели:

class Interests(models.Model):
    interest_name = models.CharField(max_length=50)
    created_by = models.ForeignKey(User, on_delete=models.CASCADE)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return "Category name:" + "\n" + self.interest_name + "\n" + "|" + "\n" + "Created By:" + "\n" + self.created_by.username


class Project(models.Model):
    project_title = models.CharField(max_length=255)
    project_description = models.TextField(max_length=1500)
    interest_category = models.ManyToManyField(Interests)
    created_by = models.ForeignKey(User, on_delete=models.CASCADE)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return "Project name:" + "\n" + self.project_title + "\n" + "|" + "\n" + "Created By:" + "\n" + self.created_by.username

Просмотров:

class ProjectView(generics.RetrieveAPIView):
    queryset = Project.objects.order_by('-created_at')

    def get(self, request):
        queryset = self.get_queryset()
        serializer = ProjectsSerializer(queryset, many=True)
        return Response(serializer.data)
    
    def post(self, request):
        if request.method == 'POST':
            serializer = ProjectsSerializer(data=request.data)
            if serializer.is_valid():
                serializer.save()
                return JsonResponse(serializer.data, status=201)
        return JsonResponse(serializer.errors, status=400)


class ProjectCategory(generics.RetrieveAPIView):
    queryset = Interests.objects.all()

    def get(self, request):
        queryset = self.get_queryset()
        serializer = InterestSerializer(queryset, many=True)
        return Response(serializer.data)

Serializer:

class InterestSerializer(serializers.ModelSerializer):
    class Meta:
        model = Interests
        fields = ('id', 'interest_name')


class ProjectsSerializer(serializers.ModelSerializer):
    interest_category = InterestSerializer(many=True)

    class Meta:
        model = Project
        fields = ('project_title', 'project_description', 'interest_category', 'created_by', 'created_at', 'updated_at')

    def create(self, validated_data):
        return Project.objects.create(**validated_data)

Новичок в DRF, поэтому любая помощь будет высоко оценена.

Вернуться на верх