Python Django子类别

Python Django子类别,python,django,django-templates,Python,Django,Django Templates,我想打印每个主要类别的子类别名称。下面的代码现在显示每个主类别的所有子类别。我该怎么办 index.html 我假设您的类别具有主类别的外键。在这种情况下,你可以这样做 {% for main_cat in main_cat_list %} <li class="subMenu"><a>{{ main_cat.main_category_name }}</a> <ul> {% for sub_cat in main_cat.

我想打印每个主要类别的子类别名称。下面的代码现在显示每个主类别的所有子类别。我该怎么办

index.html


我假设您的类别具有主类别的外键。在这种情况下,你可以这样做

{% for main_cat in main_cat_list %}
<li class="subMenu"><a>{{ main_cat.main_category_name }}</a>
    <ul>
        {% for sub_cat in main_cat.category_set.all %}
        <li><a href="products.html"><i class="icon-chevron-right"></i>{{ sub_cat.category_name }}</a></li>
        {% endfor %}
    </ul>
</li>
{% endfor %}
{main_cat_列表%中的main_cat的%
  • {%endfor%} {%endfor%}
    主类别和类别模型之间的关系是什么?显示你的models.py文件。如果你在MainCat和类别模型之间有一对多关系,那么你可以像
    {%for MainCat in main_cat_list%}{%for MainCat.cat_list%}{{{subCat.name}{%endfor%}{%endfor%}
    感谢你的回复。完美的解决方案是嵌套for循环,如下所示:{main_cat.category_set.all%}{%endfor%}非常感谢。我之前已经想出了这个解决方案。忘了分享。这很有效。谢谢你的回复。
    from django.shortcuts import render                          
    from .models import Product, Category, Main_Category
    
    
    def homePageView(request):
    
        main_cat_list = Main_Category.objects.all()
        cat_list = Category.objects.all()
    
        context = {'main_cat_list': main_cat_list, 'cat_list': cat_list}
        return render(request, 'index.html', context)
    
    {% for main_cat in main_cat_list %}
    <li class="subMenu"><a>{{ main_cat.main_category_name }}</a>
        <ul>
            {% for sub_cat in main_cat.category_set.all %}
            <li><a href="products.html"><i class="icon-chevron-right"></i>{{ sub_cat.category_name }}</a></li>
            {% endfor %}
        </ul>
    </li>
    {% endfor %}