IntegrityError: нулевое значение в столбце "categories_id" отношения "polls_products" нарушает ограничение not-null
Я пытаюсь сделать CRUD с внешними ключами, используя сериализаторы, проблема в том, что я не могу вставить данные, которые я хочу отобразить, при этом возникает следующая ошибка :
"django.db.utils.IntegrityError: null value in column "categories_id" of relation "polls_products" violates not-null constraint ПОДРОБНАЯ ИНФОРМАЦИЯ: Неудачная строка содержит (42, aw, 12, 4, good, 9, null, 3, 3, 1, t)."
Я на самом деле убедился, что добавил все данные, как показано на изображениях ниже
несмотря на то, что все данные были вставлены, возникает ошибка
ниже представлены модели и сериализатор
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)
class POLLSerializer(serializers.ModelSerializer):
class Meta:
model = Products
fields = "__all__"
class pollSerializer(serializers.ModelSerializer):
categories = serializers.StringRelatedField()
class Meta:
model = Products
fields = "__all__"
def insert(request):
data = {}
if request.method == "POST":
print('POST',id)
data['categories'] = request.POST.get('categories')
data['sub_categories'] = request.POST.get('sub_categories')
data['color'] = request.POST.get('color')
data['size'] = request.POST.get('size')
data['title'] = request.POST.get('title')
data['price'] = request.POST.get('price')
data['sku_number'] = request.POST.get('sku_number')
data['product_details'] = request.POST.get('product_details')
data['quantity'] = request.POST.get('quantity')
form = pollSerializer(data=data)
print(form)
if form.is_valid():
print('form after valid:',form)
print("error of form:",form.errors)
form.save()
messages.success(request, "Record Updated Successfully...!:)")
return redirect("polls:show")
else:
print('form not valid')
print(form.errors)
if request.method == "GET":
print('POST',id)
category_dict = Categories.objects.filter(isactive=True)
category = CategoriesSerializer(category_dict, many=True)
sub_category_dict = SUBCategories.objects.filter(isactive=True)
sub_category = SUBCategoriesSerializer(sub_category_dict,many=True)
color_dict = Colors.objects.filter(isactive=True)
color = ColorsSerializer(color_dict,many=True)
size_dict = Size.objects.filter(isactive=True)
size = SizeSerializer(size_dict,many=True)
hm = {"context": category.data,"sub_context":sub_category.data,"color_context":color.data,"size_context":size.data}
return render(request, "polls/product_insert.html", hm)
где я ошибаюсь в коде?