Неподдерживаемый поиск 'category' для поля CharField или объединение по полю не разрешено
models.py
from django.db import models
from django.urls import reverse
class Category(models.Model):
category_id = models.AutoField
category_name = models.CharField(max_length=50, default="")
desc = models.CharField(max_length=1000)
slug = models.SlugField(max_length=20)
image = models.ImageField(upload_to='onlinePizza/images', default="")
def get_url(self):
return reverse('category', args=[self.slug])
def __str__(self):
return self.category_name
class Product(models.Model):
product_id = models.AutoField
product= models.CharField(max_length=50)
category = models.ForeignKey(Category, default='', null=True, on_delete=models.CASCADE)
desc = models.CharField(max_length=1000)
image = models.ImageField(upload_to='onlinePizza/image', default="")
def __str__(self):
return self.product
Вот мой файл views.py. Я показываю ошибку в
bestseller = Product.objects.filter(product__category__icontains='BestSeller')
views.py
from django.shortcuts import render
from . models import Category, Product, Deal
from math import ceil
def index(request):
bestseller = Product.objects.filter(product__category__icontains='BestSeller')
context = {'bestseller':bestseller}
return render(request, 'onlinePizza/index.html', context)
Я хочу, чтобы продукт категории Bestseller находился в index.html
Я использую Django 4 и pyhton 3.9
вы не можете использовать поле charfield в качестве поля правящего ключа,
он должен быть таким:
bestseller = Product.objects.filter(category__category_name ='BestSeller')
или вот так (та же логика):
best_seller_category = Category.objects.get(category_name = "BestSeller")
bestseller = Product.objects.filter(category=best_seller_category)
это выведет все Products
в категории с именем BestSeller