from django_components import Component, register, types DESCRIPTION = "100 nested components? Not a problem! Handle recursive rendering out of the box." @register("recursion") class Recursion(Component): class Kwargs: current_depth: int = 0 def get_template_data(self, args, kwargs: Kwargs, slots, context): current_depth = kwargs.current_depth return { "current_depth": current_depth, "next_depth": current_depth + 1, } template: types.django_html = """ {% load component_tags %}
{% if current_depth < 100 %}

Recursion depth: {{ current_depth }}

{% component "recursion" current_depth=next_depth / %} {% else %}

Reached maximum recursion depth!

{% endif %}
"""