Как получить дочерние элементы от родителя в категории?

Как я могу использовать фильтр, чтобы получить именно тех детей, которые являются родственниками данного родителя? Я использую 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 %}
Вернуться на верх