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 %}
Recursion depth: {{ current_depth }}
{% component "recursion" current_depth=next_depth / %} {% else %}Reached maximum recursion depth!
{% endif %}