У меня есть три модели, такие как Store, ProductsArea и Item. В Магазине может быть много ProductsArea, а в ProductsArea может быть много предметов.
#models.py
class Store(models.Model):
name = models.CharField(max_length=64, unique=True)
description = models.TextField(null=True, blank=True)
class ProductArea(models.Model):
store = models.ForeignKey(Store, related_name='productarea', on_delete=models.CASCADE)
name = models.CharField(max_length=64,verbose_name=_('Name'))
class Item(models.Model):
product_area = models.ForeignKey(ProductArea, related_name='items', on_delete=models.CASCADE, verbose_name='Menu')
name = models.CharField(max_length=64, verbose_name=_('Name'))
price = models.DecimalField(max_digits=8, decimal_places=2, verbose_name=_('Price'))
На мой взгляд, я использую CBV и хочу вернуть все элементы, которые содержат одну и ту же ProductArea, щелкнув ListItems из определенной ProductArea, с помощью FK они получают все элементы из ProductArea. То же самое для ProductArea в магазине.
Store - Clothes Store
Product Area - Shirts, Pants
Item - Shirt Yellow(PA.Shirts), Shirt Blue(PA.Shirts)
Item - Pant Black(PA.Pants), Pants Red(PA.Pants)
Если кликнуть по Shirts
, я хочу вернуть список с Shirt Yellow
и Shirt Blue
.
Я попробовал это, на мой взгляд:
def get_queryset(self):
product_area_id = ProductArea.objects.get(id)
product_area = ProductArea.objects.get(pk=product_area_id)
items_in_productarea = Item.objects.filter(product_area=product_area)
return items_in_productarea
Но не работает, есть builtin_function_or_method' object is not iterable
Может кто-нибудь мне помочь? Спасибо большое друзьям.