我有一个商店应用程序,有
categories
和
subcategories
,我有3个类别,每个类别下有一个叫做
Other
的子类别,当我点击
url
时,我得到这个错误。
MultipleObjectsReturned at /categories/subcategory/Other, get() returned more than one SubCategory -- it returned 3!
我意识到使用
filter
不是一个选项,因为它将返回3个值,而一个url不能接受queryset作为参数,我能否以某种方式也使用子分类类别
title
来过滤查询,或者你有什么其他想法?
Here is the code:
urls.py
path('subcategory/<str:title>/', views.subcategory, name='subcategory'),
views.py
def subcategory(request, title):
subcategory = SubCategory.objects.get(title=title)
products = Product.objects.filter(subcategory=subcategory)
return render(request, 'subcategory.html', {'subcategory': subcategory,
'products': products})
这是我的模型。
models.py
class Category(models.Model):
title = models.CharField(max_length=200, unique=True, blank=False, null=False)
class SubCategory(models.Model):
title = models.CharField(max_length=200, unique=False, blank=False)
category = models.ForeignKey(Category,
related_name='subcategories',
on_delete=models.CASCADE)