[ErrorDetail(string='Неверный тип. Ожидалось значение pk, получено str.', code='incorrect_type')].

Я делаю CRUD покупки с моделью Products с Categories, sub categories, color, size в качестве внешних ключей, используя сериализаторы, потому что мне сказали использовать внешние ключи и сериализаторы. Проблема в том, что данные, которые я пытаюсь вставить, не приходят на страницу показа. Ниже приведена ошибка:

"ошибка сериализатора: {'categories': [ErrorDetail(string='Неверный тип. Expected pk value, received str.', code='incorrect_type')], 'sub_categories': [ErrorDetail(string='Incorrect type. Ожидаемое значение pk, получено str.', code='incorrect_type')], 'цвет': [ErrorDetail(string='Неверный тип. Ожидаемое значение pk, получено str.', code='incorrect_type')], 'size': [ErrorDetail(string='Это поле не может быть нулевым.', code='null')]}"

ниже приведена модель

class Products(models.Model):
    categories = models.ForeignKey(Categories,on_delete=models.CASCADE)
    sub_categories = models.ForeignKey(SUBCategories,on_delete=models.CASCADE)
    color = models.ForeignKey(Colors,on_delete=models.CASCADE)
    size = models.ForeignKey(Size,on_delete=models.CASCADE)
    # image = models.ImageField(upload_to = 'media/',width_field=None,height_field=None,null=True)
    title = models.CharField(max_length=50)
    price = models.CharField(max_length=10)
    sku_number = models.CharField(max_length=10)
    product_details = models.CharField(max_length=300)
    quantity = models.IntegerField(default=0)
    isactive = models.BooleanField(default=True)

функции показа и вставки

def show(request):
    showall = Products.objects.filter(isactive=True) 
    print("wghj",showall)
    serializer = POLLSerializer(showall,many=True)  
   
    return render(request,'polls/product_list.html',{"data":serializer.data})

def insert(request):
    if request.method == "POST":
        print('POST',id)
        insert_clothes = {}
        insert_clothes['categories']=request.POST.get('categories')
        insert_clothes['sub_categories']=request.POST.get('sub_categories')
        insert_clothes['color']=request.POST.get('color')
        insert_clothes['size']=request.POST.get('size ')
        # insert_clothes['image']=request.POST.get('image')
        insert_clothes['title']=request.POST.get('title')
        insert_clothes['price']=request.POST.get('price')
        insert_clothes['sku_number']=request.POST.get('sku_number')
        insert_clothes['product_details']=request.POST.get('product_details')
        insert_clothes['quantity']=request.POST.get('quantity')
        print("insert clothes:",insert_clothes)
        serializer = POLLSerializer(data = insert_clothes)
        print('form:',serializer.initial_data)
        if serializer.is_valid():
            serializer.save()

            messages.success(request,'Record Updated successfully :)!!!!')
            return redirect('polls:show')
        else:
            print("invalid")
            print("error of serializer:",serializer.errors)
            return redirect('polls:insert')
    else:
        print('GET',id)
        return render(request,'polls/product_insert.html')

show page

<td><b>{{result.categories}}</b></td>
<td><b>{{result.sub_categories}}</b></td>
<td><b>{{result.color}}</b></td>
<td><b>{{result.size}}</b></td>
<td><b>{{result.title}}</b></td>
<td><b>{{result.price}}</b></td>
<td><b>{{result.sku_number}}</b></td>
<td><b>{{result.product_details}}</b></td>
<td><b>{{result.quantity}}</b></td>

вставьте страницу

где я ошибаюсь в коде?

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