I'm trying to save some data like Image and it's info with POST method from Postman. But I got an error: init() got an unexpected keyword argument 'title'. Here is my code:
1.models.py
from django.db import models
class Images(models.Model):
title = models.CharField(max_length=100)
description = models.CharField(max_length=100)
image = models.ImageField()
- serializers.py
from rest_framework import serializers
from .models import Images
class ImgSerializer(serializers.ModelSerializer):
class Meta:
model = Images
fields = ["title", "description", "image"]
def create(self, validated_data):
return ImgSerializer(**validated_data)
def update(self, instance, validated_data):
instance.title = validated_data.get('title', instance.title)
instance.description = validated_data.get('description', instance.description)
instance.save()
return instance
- views.py
class ImgApi(APIView):
parser_classes = (MultiPartParser, FormParser)
def post(self, request):
serializer = ImgSerializer(data=request.data)
if serializer.is_valid():
try:
serializer.save()
except Exception as e:
logger.error(e)
return Response(data={'msg':f'{e}'},status=status.HTTP_500_INTERNAL_SERVER_ERROR)
return Response(data=json_data,
status=status.HTTP_201_CREATED)
How should I fix this problem?
