0

i am a beginner in django mptt....thanks in advance

class Category(MPTTModel):
    title = models.CharField(max_length =120)
    parent = TreeForeignKey('self' , null = True , blank = True , verbose_name='parent category', related_name='categories')

    def get_absolute_url(self):
        return reverse('categories', kwargs={'path': self.get_path()})

    def get_clothes(self): 
        return Product.objects.filter(category__in=self.get_descendants(include_self=True))
    def get_brands(self):
        return  Product.objects.filter(category__in=self.get_descendants(include_self=True) , brand=product__brand)


class Product(models.Model):
    brand = ForeignKey('Brand', verbose_name='brands', related_name='brand' , default='')
    category = TreeForeignKey('Category', verbose_name='categories', related_name='products' , default='')

i have categories like this men > men clothing > tshirts

my template

{% for brand in instance.get_brands %}
{{ brand.title }}
{% endfor %}

i am getting the error

global name 'product__brand' is not defined
ruddra
  • 50,746
  • 7
  • 78
  • 101

1 Answers1

1

The problem is in this method:

def get_brands(self):
        return  Product.objects.filter(category__in=self.get_descendants(include_self=True) , brand=product__brand) #This line

It should be:

return  Product.objects.filter(category__in=self.get_descendants(include_self=True) , brand= 'something') # instead of product__brand
ruddra
  • 50,746
  • 7
  • 78
  • 101
  • thanks for the help but Cant i extract all the brands from all the product objects?..sorry to ask such question i am new to django – Adrafe Rinzzler Nov 26 '15 at 08:16
  • You can do that by: `Product.objects.all().values('brand')`, it will return a [ValuesQuerySet](https://docs.djangoproject.com/en/1.8/ref/models/querysets/#django.db.models.query.QuerySet.values) – ruddra Nov 28 '15 at 00:49