我已經建立了一個網站,按類別和兒童(子)類別分類產品。django:子類別和他們的父母
這是我的模型:
class Category(models.Model):
name = models.CharField(max_length=250)
parent = models.ForeignKey('self', related_name='children')
...
class Product(models.Model):
category = models.ForeignKey(Category)
name = models.CharField(max_length=250)
...
上呈現的類別來看,我有這樣的:
def some_view(request, category):
category_list = Category.objects.filter(parent__isnull=True)
product_list = Product.objects.filter(category=category)
我的模板顯示一切正常:
<ul>
{% for category in category_list %}
<li>
<a href="{{ category.get_absolute_url }}">{{ category.name }}</a>
<ul>
{% for child in category.children.all %}
<li><a href="{{ child.get_absolute_url }}">{{ child.name }}</a></li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
我可以成功顯示類別和他們的孩子。我的問題是,我正在使用子類別來進一步過濾產品,但它們也應屬於主要類別。例如:
Books
--- Comics
--- Sci-Fi
--- ...
Music
--- Classical
--- Pop
--- ...
如果我在分類「圖書>漫畫」一個產品,我會,如果我在我的模板類別列表中選擇「漫畫」獲得該產品。但是,選擇「書籍」也應該列出該產品,因爲它是最高類別,但除非我將它們分類爲父類別「書籍」,否則不會顯示任何產品。 我不確定如何以更好的方式解釋這一點,但我基本上希望能夠顯示屬於子類別的所有產品,但是當我選擇主類別時,該產品也應該在那裏,我似乎無法使其工作。有什麼建議嗎?
注意我知道django-mptt,但我已經在數據庫中插入了大約100種產品,所以它不是一個選項。 – 2011-02-28 18:33:37