django-components/docs/reference/extension_hooks.md
Juro Oravec 09bcf8dbcc
Some checks failed
Run tests / test_sampleproject (3.13) (push) Has been cancelled
Run tests / build (ubuntu-latest, 3.13) (push) Has been cancelled
Run tests / build (ubuntu-latest, 3.8) (push) Has been cancelled
Run tests / build (ubuntu-latest, 3.9) (push) Has been cancelled
Run tests / build (windows-latest, 3.10) (push) Has been cancelled
Run tests / build (windows-latest, 3.11) (push) Has been cancelled
Run tests / build (windows-latest, 3.12) (push) Has been cancelled
Run tests / build (windows-latest, 3.13) (push) Has been cancelled
Run tests / build (windows-latest, 3.8) (push) Has been cancelled
Run tests / build (windows-latest, 3.9) (push) Has been cancelled
Run tests / test_docs (3.13) (push) Has been cancelled
Docs - build & deploy / docs (push) Has been cancelled
Run tests / build (ubuntu-latest, 3.10) (push) Has been cancelled
Run tests / build (ubuntu-latest, 3.11) (push) Has been cancelled
Run tests / build (ubuntu-latest, 3.12) (push) Has been cancelled
feat: on_xx_loaded extension hooks (#1242)
* feat: on_xx_loaded extension hooks

* refactor: fix tests
2025-06-08 17:28:10 +02:00

11 KiB

Extension hooks

Overview of all the extension hooks available in Django Components.

Read more on Extensions.

Hooks

::: django_components.extension.ComponentExtension.on_component_class_created options: heading_level: 3 show_root_heading: true show_signature: true separate_signature: true show_symbol_type_heading: false show_symbol_type_toc: false show_if_no_docstring: true show_labels: false

Available data:

name type description
component_cls Type[Component] The created Component class

::: django_components.extension.ComponentExtension.on_component_class_deleted options: heading_level: 3 show_root_heading: true show_signature: true separate_signature: true show_symbol_type_heading: false show_symbol_type_toc: false show_if_no_docstring: true show_labels: false

Available data:

name type description
component_cls Type[Component] The to-be-deleted Component class

::: django_components.extension.ComponentExtension.on_component_data options: heading_level: 3 show_root_heading: true show_signature: true separate_signature: true show_symbol_type_heading: false show_symbol_type_toc: false show_if_no_docstring: true show_labels: false

Available data:

name type description
component Component The Component instance that is being rendered
component_cls Type[Component] The Component class
component_id str The unique identifier for this component instance
context_data Dict Deprecated. Use template_data instead. Will be removed in v1.0.
css_data Dict Dictionary of CSS data from Component.get_css_data()
js_data Dict Dictionary of JavaScript data from Component.get_js_data()
template_data Dict Dictionary of template data from Component.get_template_data()

::: django_components.extension.ComponentExtension.on_component_input options: heading_level: 3 show_root_heading: true show_signature: true separate_signature: true show_symbol_type_heading: false show_symbol_type_toc: false show_if_no_docstring: true show_labels: false

Available data:

name type description
args List List of positional arguments passed to the component
component Component The Component instance that received the input and is being rendered
component_cls Type[Component] The Component class
component_id str The unique identifier for this component instance
context Context The Django template Context object
kwargs Dict Dictionary of keyword arguments passed to the component
slots Dict[str, Slot] Dictionary of slot definitions

::: django_components.extension.ComponentExtension.on_component_registered options: heading_level: 3 show_root_heading: true show_signature: true separate_signature: true show_symbol_type_heading: false show_symbol_type_toc: false show_if_no_docstring: true show_labels: false

Available data:

name type description
component_cls Type[Component] The registered Component class
name str The name the component was registered under
registry ComponentRegistry The registry the component was registered to

::: django_components.extension.ComponentExtension.on_component_rendered options: heading_level: 3 show_root_heading: true show_signature: true separate_signature: true show_symbol_type_heading: false show_symbol_type_toc: false show_if_no_docstring: true show_labels: false

Available data:

name type description
component Component The Component instance that is being rendered
component_cls Type[Component] The Component class
component_id str The unique identifier for this component instance
error Optional[Exception] The error that occurred during rendering, or None if rendering was successful
result Optional[str] The rendered component, or None if rendering failed

::: django_components.extension.ComponentExtension.on_component_unregistered options: heading_level: 3 show_root_heading: true show_signature: true separate_signature: true show_symbol_type_heading: false show_symbol_type_toc: false show_if_no_docstring: true show_labels: false

Available data:

name type description
component_cls Type[Component] The unregistered Component class
name str The name the component was registered under
registry ComponentRegistry The registry the component was unregistered from

::: django_components.extension.ComponentExtension.on_css_loaded options: heading_level: 3 show_root_heading: true show_signature: true separate_signature: true show_symbol_type_heading: false show_symbol_type_toc: false show_if_no_docstring: true show_labels: false

Available data:

name type description
component_cls Type[Component] The Component class whose CSS was loaded
content str The CSS content (string)

::: django_components.extension.ComponentExtension.on_js_loaded options: heading_level: 3 show_root_heading: true show_signature: true separate_signature: true show_symbol_type_heading: false show_symbol_type_toc: false show_if_no_docstring: true show_labels: false

Available data:

name type description
component_cls Type[Component] The Component class whose JS was loaded
content str The JS content (string)

::: django_components.extension.ComponentExtension.on_registry_created options: heading_level: 3 show_root_heading: true show_signature: true separate_signature: true show_symbol_type_heading: false show_symbol_type_toc: false show_if_no_docstring: true show_labels: false

Available data:

name type description
registry ComponentRegistry The created ComponentRegistry instance

::: django_components.extension.ComponentExtension.on_registry_deleted options: heading_level: 3 show_root_heading: true show_signature: true separate_signature: true show_symbol_type_heading: false show_symbol_type_toc: false show_if_no_docstring: true show_labels: false

Available data:

name type description
registry ComponentRegistry The to-be-deleted ComponentRegistry instance

::: django_components.extension.ComponentExtension.on_slot_rendered options: heading_level: 3 show_root_heading: true show_signature: true separate_signature: true show_symbol_type_heading: false show_symbol_type_toc: false show_if_no_docstring: true show_labels: false

Available data:

name type description
component Component The Component instance that contains the {% slot %} tag
component_cls Type[Component] The Component class that contains the {% slot %} tag
component_id str The unique identifier for this component instance
result SlotResult The rendered result of the slot
slot Slot The Slot instance that was rendered
slot_is_default bool Whether the slot is default
slot_is_required bool Whether the slot is required
slot_name str The name of the {% slot %} tag
slot_node SlotNode The node instance of the {% slot %} tag

::: django_components.extension.ComponentExtension.on_template_compiled options: heading_level: 3 show_root_heading: true show_signature: true separate_signature: true show_symbol_type_heading: false show_symbol_type_toc: false show_if_no_docstring: true show_labels: false

Available data:

name type description
component_cls Type[Component] The Component class whose template was loaded
template django.template.base.Template The compiled template object

::: django_components.extension.ComponentExtension.on_template_loaded options: heading_level: 3 show_root_heading: true show_signature: true separate_signature: true show_symbol_type_heading: false show_symbol_type_toc: false show_if_no_docstring: true show_labels: false

Available data:

name type description
component_cls Type[Component] The Component class whose template was loaded
content str The template string
name Optional[str] The name of the template
origin Optional[django.template.base.Origin] The origin of the template

Objects

::: django_components.extension.OnComponentClassCreatedContext options: heading_level: 3 show_if_no_docstring: true

::: django_components.extension.OnComponentClassDeletedContext options: heading_level: 3 show_if_no_docstring: true

::: django_components.extension.OnComponentDataContext options: heading_level: 3 show_if_no_docstring: true

::: django_components.extension.OnComponentInputContext options: heading_level: 3 show_if_no_docstring: true

::: django_components.extension.OnComponentRegisteredContext options: heading_level: 3 show_if_no_docstring: true

::: django_components.extension.OnComponentUnregisteredContext options: heading_level: 3 show_if_no_docstring: true

::: django_components.extension.OnRegistryCreatedContext options: heading_level: 3 show_if_no_docstring: true

::: django_components.extension.OnRegistryDeletedContext options: heading_level: 3 show_if_no_docstring: true