在Django中,可以使用filter
函数根据分类ID来筛选子类别。以下是一个示例代码:
首先,假设你有一个名为Category
的模型,其中包含一个名为parent
的外键字段,用于表示父类别。
from django.db import models
class Category(models.Model):
name = models.CharField(max_length=100)
parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True)
接下来,你可以创建一个视图函数,根据分类ID来显示子类别。
from django.shortcuts import render
from .models import Category
def show_subcategories(request, category_id):
# 获取指定ID的分类
category = Category.objects.get(id=category_id)
# 获取该分类的所有子类别
subcategories = Category.objects.filter(parent=category)
context = {
'category': category,
'subcategories': subcategories
}
return render(request, 'subcategories.html', context)
最后,在模板文件subcategories.html
中,你可以使用Django模板语言来显示子类别。
{{ category.name }}
{% for subcategory in subcategories %}
- {{ subcategory.name }}
{% empty %}
- No subcategories found.
{% endfor %}
现在,当你访问/categories/1/
时,将会显示具有ID为1的分类的子类别列表。
请注意,上述示例中的URL配置和模板文件需要根据你的实际情况进行调整。此外,还需要在项目的URL配置文件中将show_subcategories
视图函数与相应的URL模式进行关联。