0

I am trying to call parent and child element of a model, I have gone through the MPTT model documentation. I did as mentioned on the documentation, but my template is failing to print children

What can be the possible cause of this problem?

Here is my Views:

def category_view(request):
category = Categories.objects.all()
brands = Brands.objects.all()
context ={
    'category':category,
    'brands':brands,
       
            
}
return render(request,'./ecommerce/categories.html', context)

and Here is my template HTML:

{% load mptt_tags %}
     {% recursetree category%}
        <div class="category-wrap mb-4">
            <div class="category category-group-image br-sm">
                <div class="category-content">
                    <h4 class="category-name"><a href="">{{ node.name }}</a>
                    </h4>
                    
                    <ul class="category-list">
                        {% if not node.is_leaf_node %}
                        <li><a href="">{{children}}</a></li>
                        {% endif %}
                       
                    </ul>
                    
                </div>
                
            </div>
        </div>
        <!-- End of Category Wrap -->
        
        {% endrecursetree %}

Parent element is printed but children element is not being printed

Madhav Dhungana
  • 476
  • 4
  • 13

1 Answers1

0

Doing a lot of hit and trial, generic approach solved my problem. Others having similar problem could be benefited from my answer, hence posting the solution.

Views:

category = Categories.objects.filter(parent=None)

Template:

{% for category in categories %}
        <div class="category-wrap mb-4">
            <div class="category category-group-image br-sm">
                <div class="category-content">
                    <h4 class="category-name"><a href="{% url 'ecommerce:item_by_category' category.slug|slugify %}">{{ category.name }}</a>
                    </h4>
                    
                    <ul class="category-list">
                        {% for cat in category.get_children %}              
                        <li><a href="/categories/{{ cat.id }}/">{{  cat.name }}</a> </li> 
                        {% endfor %}
                        
                      
                       
                        
                       
                    </ul>
                    
                </div>
                
            </div>
        </div>
        <!-- End of Category Wrap -->
        
        {% endfor %}
Madhav Dhungana
  • 476
  • 4
  • 13