Ошибка при валидации данных в Django REST Framework с использованием метода validate_qr

Я столкнулся с ошибкой TypeError: string indices must be integers, когда пытался провести валидацию данных в Django REST Framework с помощью метода validate_qr. я хочу чтобы метод делал проверку того равно ли значение qr со строкой если нет то он должен вернуть сообщение об ошибке , интерпретатор говорит что строковые индексы должны быть числами , я попробовал перевести строковые числа используя класс int но он продожает возвращать ошибку

from django.db import models


class Category(models.Model):
    name = models.CharField(max_length=100)
    description = models.CharField(max_length=100)

    def __str__(self):
        return self.name


class Item(models.Model):
    name = models.CharField(max_length=100)
    price = models.IntegerField()
    qr = models.CharField(max_length=100)
    category_id = models.ForeignKey(Category, on_delete=models.CASCADE)

    def __str__(self):
        return self.name

class CategorySerializer(serializers.ModelSerializer):
    class Meta:
        model = Category
        fields = '__all__'

    def validate(self, data):
        if "!@#$%^&*" in data["name"]:
            raise ValidationError('You cannot use special characters')
        return data


class ItemSerializer(serializers.ModelSerializer):
    class Meta:
        model = Item
        fields = ['id', 'name', 'price', 'qr', 'category_id']

def validate_qr(self, data):
    cat = data['category']
    cat_int = int(cat)
    
    pr = data['price']
    pr_int = int(pr)
    
    di = data['id']
    di_int = int(di)
    
    # Сравниваем с фактической строкой QR
    if data['qr'] != f"{cat_int}C{pr_int}P{di_int}I":
        raise serializers.ValidationError("QR код не соответствует стандартам")
        
    return data
class ItemListCreateAPIView(APIView):
    def get(self, request):
        p = Item.objects.all()
        serializers = ItemSerializer(p, many=True)
        return Response(serializers.data)

    def post(self, request):
        print(request.data)
        serializers = ItemSerializer(data=request.data)
        if serializers.is_valid(raise_exception=True):
            serializers.save()
            return Response(serializers.data)

Ответы (0 шт):