ValueError at / save_data/

Невозможно присвоить "'Electronic'": "Product.category" должен быть экземпляром "Category".

Файл/models.py:

from django.db import models

# Create your models here.


class Category(models.Model):
    name = models.CharField(max_length=150, db_index=True)

    def __str__(self):
        return self.name


class SubCategory(models.Model):
    name = models.CharField(max_length=150, db_index=True)
    category = models.ForeignKey(Category, related_name='souscatégories', on_delete=models.CASCADE)

    def __str__(self):
        return self.name


class Product(models.Model):
    name = models.CharField(max_length=100, db_index=True)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    subcategory = models.ForeignKey(SubCategory,  on_delete=models.CASCADE)

    def __str__(self):
        return self.

и код бизнес-логики здесь.... Файл/views.py

# from django.urls import reverse_lazy
# from django.views.generic import ListView, CreateView

from django.shortcuts import render

from .models import Product, Category, SubCategory


# Create your views here.
def home(request):
    if request.method == "POST":
        name = request.POST['name']
        subcategory = request.POST['subcategory']
        category = request.POST['category']

        ins = Product(name=name, subcategory=subcategory, category=category)
        ins.save()


    data = Product.objects.all()
    return render(request, 'mysiteapp/index.html', {'data': data})

и шаблоны там....

и, наконец, ошибка :

Ошибка значения в / Невозможно присвоить "'Electronic'": "Product.category" должен быть экземпляром "Category".

пожалуйста, ответьте мне...

Вы не можете напрямую передать категорию из POST-данных. Либо она должна быть экземпляром класса Category

category_id = request.POST['category']
#Get category instance
category = Category.objects.get(pk=category_id)
ins = Product(name=name, subcategory=subcategory, category=category)

или вы можете использовать значение категории pk.

ins = Product(name=name, subcategory=subcategory, category_id=category_id)
Вернуться на верх