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)