Как получить дочерние элементы от родителя в категории?
Как я могу использовать фильтр, чтобы получить именно тех детей, которые являются родственниками данного родителя? Я использую MPTT, но не использую recursetree, потому что он не работает с изображениями.
Models.py
class Category(MPTTModel):
parent = TreeForeignKey('self',blank=True, null=True ,related_name='children', on_delete=models.CASCADE)
title = models.CharField(max_length=50)
image=models.ImageField(blank=True,upload_to='images/')
Пример html:
{% for category in categories %}
<div>
<div>
<h1>{{ category.title }}</h1>
</div>
<div>
<img src="{{ category.image.url }}">
</div>
</div>
<div>
<ul>
{% for subcategory in subcategories %}
<li><a href="#">{{ subcategory }}</a></li>
{% endfor %}
</ul>
</div>
{% endfor %}
views.py
def index(request):
categories = Category.objects.filter(parent__isnull=True)
subcategories = Category.objects.filter(???) # how take self
context={'categories': categories,
'subcategories': subcategories
}
return render(request,'index.html',context)
Вы могли бы использовать связанные объекты в шаблоне (https://docs.djangoproject.com/en/4.0/ref/models/relations/)
{% for subcategory in category.parent_set.all %}
<li><a href="#">{{ subcategory }}</a></li>
{% endfor %}