在模型上过滤时未定义全局名称
global name not defined when filtering on model
我是 django mptt 的初学者....提前致谢
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='')
我有这样的分类
男士 > 男装 > T 恤
我的模板
{% for brand in instance.get_brands %}
{{ brand.title }}
{% endfor %}
我遇到了错误
global name 'product__brand' is not defined
问题出在这个方法中:
def get_brands(self):
return Product.objects.filter(category__in=self.get_descendants(include_self=True) , brand=product__brand) #This line
应该是:
return Product.objects.filter(category__in=self.get_descendants(include_self=True) , brand= 'something') # instead of product__brand
我是 django mptt 的初学者....提前致谢
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='')
我有这样的分类 男士 > 男装 > T 恤
我的模板
{% for brand in instance.get_brands %}
{{ brand.title }}
{% endfor %}
我遇到了错误
global name 'product__brand' is not defined
问题出在这个方法中:
def get_brands(self):
return Product.objects.filter(category__in=self.get_descendants(include_self=True) , brand=product__brand) #This line
应该是:
return Product.objects.filter(category__in=self.get_descendants(include_self=True) , brand= 'something') # instead of product__brand