Поэтому, когда я пытаюсь загрузить данные в мои модели из моего файла .json из cmd, он выдает мне эту ошибку: 
Кажется, проблема в'category_id', но я не уверен, как мне решить эту проблему.
Вот мой код:
shop / models.py
from django.db import models
from django.urls import reverse
# Create your models here.
class Category(models.Model):
name = models.TextField()
products = models.ManyToManyField('Product')
def get_products(self):
return Product.objects.filter(category=self)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('product_list_by_category',args=[self.id])
class Product(models.Model):
name = models.TextField()
description = models.TextField()
stock = models.IntegerField()
price = models.DecimalField(max_digits=10,decimal_places=2)
image = models.ImageField(upload_to='images/', blank=True)
def __str__(self):
return self.name
shop/views.py
from django.shortcuts import render, get_object_or_404, redirect
from .models import Category, Product
from django.db.models import Count
from django.contrib.auth.models import Group, User
from django.core.paginator import Paginator, EmptyPage, InvalidPage
def product_list(request, category_id=None):
category = None
products = Product.objects.all()
ccat = Category.objects.annotate(num_products=Count('products'))
if category_id:
category = get_object_or_404(Category, id=category_id)
products = products.filter(category=category)
paginator = Paginator(products, 3)
try:
page = int(request.GET.get('page', 1))
except:
page = 1
try:
products = paginator.page(page)
except(EmptyPage, InvalidPage):
products = paginator.page(paginator.num_pages)
return render(request, 'products.html',
{'products': products,
'countcat':ccat})
И это два файла .json, которые я хочу загрузить в свою базу данных (стоит отметить, что createcategories.json работал без проблем)
createcategories.json
[
{
"model": "shop.category",
"pk": 1,
"fields": {
"name": "Europe"
}
},
{
"model": "shop.category",
"pk": 2,
"fields": {
"name": "North America"
}
},
{
"model": "shop.category",
"pk": 3,
"fields": {
"name": "South America"
}
},
{
"model": "shop.category",
"pk": 4,
"fields": {
"name": "Asia"
}
},
{
"model": "shop.category",
"pk": 5,
"fields": {
"name": "Africa"
}
},
{
"model": "shop.category",
"pk": 6,
"fields": {
"name": "Middle East"
}
}
]
I thought that the category_id would get added automatically as a foreign key bu it has not.
Many thanks in advance!
createproducts.json
[
{
"model": "shop.product",
"pk": 1,
"fields": {
"category_id":1,
"name": "Europe Title 1",
"description": "Europe Description 1",
"stock": 3,
"price": 100.00
}
},
{
"model": "shop.product",
"pk": 2,
"fields": {
"category_id":2,
"name": "North America Title 1",
"description": "North America Description 1",
"stock": 4,
"price": 7.00
}
},
{
"model": "shop.product",
"pk": 3,
"fields": {
"category_id":3,
"name": "South America Title 1",
"description": "South America Desc 1",
"stock": 100,
"price": 2.00
}
},
{
"model": "shop.product",
"pk": 4,
"fields": {
"category_id":4,
"name": "Asia Title 1",
"description": "Asia Desc 1",
"stock": 50,
"price": 1.00
}
},
{
"model": "shop.product",
"pk": 5,
"fields": {
"category_id":5,
"name": "Africa Title 1",
"description": "Africa Desc 1",
"stock": 9,
"price": 99.00
}
},
{
"model": "shop.product",
"pk": 6,
"fields": {
"category_id":4,
"name": "Asia Title 2",
"description": "Asia Desc 2",
"stock": 1,
"price": 50.00
}
},
{
"model": "shop.product",
"pk": 7,
"fields": {
"category_id":1,
"name": "Europe Title 2",
"description": "Europe Desc 2",
"stock": 2,
"price": 300.00
}
},
{
"model": "shop.product",
"pk": 8,
"fields": {
"category_id":4,
"name": "Asia Title 3",
"description": "Asia Desc 3",
"stock": 2,
"price": 75.00
}
},
{
"model": "shop.product",
"pk": 9,
"fields": {
"category_id":6,
"name": "Middle East Title 1",
"description": "Middle East Desc 1",
"stock": 1,
"price": 50.00
}
},
{
"model": "shop.product",
"pk": 10,
"fields": {
"category_id":6,
"name": "Middle East Title 2",
"description": "Middle East Desc 1",
"stock": 2,
"price": 15.00
}
}
]