Обновление существующих данных путем загрузки файла с помощью django-rest-framework

Я могу нормально добавлять данные, но не могу обновлять существующие данные. Я могу добавить новую запись, но не могу обновить записи с теми же name в импортированных данных. Что мне делать?

   
class CategoryUploadView(APIView):
    authentication_classes = [OAuth2Authentication]
    permission_classes = [AllowAny]    
    parser_classes = [MultiPartParser]

    def post(self, request):
        file_obj = request.FILES['file']
        decoded_file = file_obj.read().decode('utf-8').splitlines()
        reader = csv.DictReader(decoded_file)
        for row in reader:
            serializer = CategorySerializer(data=row)
            if serializer.is_valid():
                serializer.save()
            else:
                return Response(serializer.errors, status=400)
        return Response({"message": "Data imported successfully"}, status=200)

class CategorySerializer(serializers.ModelSerializer):
    class Meta:
        model=Category
        fields=['id', 'name']

    def to_internal_value(self, data):
        data = data.copy()
        data['name'] = data.get('name', None).lower()
        return super().to_internal_value(data)

class Category(models.Model):
    name = models.CharField(max_length=32, unique=True)
    description = models.CharField(max_length=255)
    update_on = models.DateField(auto_now=True)

    def __str__(self) -> str:
        return self.name 

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