mirror of
https://github.com/django-components/django-components.git
synced 2025-09-26 15:39:08 +00:00
Deployed f100cc18
to dev with MkDocs 1.6.1 and mike 2.1.3
This commit is contained in:
parent
d7c0bf40c5
commit
b4b5f972ff
79 changed files with 547 additions and 725 deletions
|
@ -120,34 +120,34 @@
|
|||
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=c1># Add a new attribute to the Component class</span>
|
||||
<a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=n>ctx</span><span class=o>.</span><span class=n>component_cls</span><span class=o>.</span><span class=n>my_attr</span> <span class=o>=</span> <span class=s2>"my_value"</span>
|
||||
</code></pre></div> </div> </div><p><strong>Available data:</strong></p> <table> <thead> <tr> <th>name</th> <th>type</th> <th>description</th> </tr> </thead> <tbody> <tr> <td><code>component_cls</code></td> <td><a href=../api#django_components.Component><code>Type[Component]</code></a></td> <td>The created Component class</td> </tr> </tbody> </table> <div class="doc doc-object doc-function"> <h3 id=django_components.extension.ComponentExtension.on_component_class_deleted class="doc doc-heading"> <span class="doc doc-object-name doc-function-name">on_component_class_deleted</span> <a href=#django_components.extension.ComponentExtension.on_component_class_deleted class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_component_class_deleted</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-internal" title=" OnComponentClassDeletedContext (django_components.extension.OnComponentClassDeletedContext)" href=#django_components.extension.OnComponentClassDeletedContext>OnComponentClassDeletedContext</a></span><span class=p>)</span> <span class=o>-></span> <span class=kc>None</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L560 target=_blank>See source code</a></p> <p>Called when a <a href=../api/#django_components.Component><code>Component</code></a> class is being deleted.</p> <p>This hook is called before the <a href=../api/#django_components.Component><code>Component</code></a> class is deleted from memory.</p> <p>Use this hook to perform any cleanup related to the <a href=../api/#django_components.Component><code>Component</code></a> class.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnComponentClassDeletedContext</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L559 target=_blank>See source code</a></p> <p>Called when a <a href=../api/#django_components.Component><code>Component</code></a> class is being deleted.</p> <p>This hook is called before the <a href=../api/#django_components.Component><code>Component</code></a> class is deleted from memory.</p> <p>Use this hook to perform any cleanup related to the <a href=../api/#django_components.Component><code>Component</code></a> class.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnComponentClassDeletedContext</span>
|
||||
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
|
||||
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
|
||||
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_component_class_deleted</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnComponentClassDeletedContext</span><span class=p>)</span> <span class=o>-></span> <span class=kc>None</span><span class=p>:</span>
|
||||
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=c1># Remove Component class from the extension's cache on deletion</span>
|
||||
<a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=bp>self</span><span class=o>.</span><span class=n>cache</span><span class=o>.</span><span class=n>pop</span><span class=p>(</span><span class=n>ctx</span><span class=o>.</span><span class=n>component_cls</span><span class=p>,</span> <span class=kc>None</span><span class=p>)</span>
|
||||
</code></pre></div> </div> </div><p><strong>Available data:</strong></p> <table> <thead> <tr> <th>name</th> <th>type</th> <th>description</th> </tr> </thead> <tbody> <tr> <td><code>component_cls</code></td> <td><a href=../api#django_components.Component><code>Type[Component]</code></a></td> <td>The to-be-deleted Component class</td> </tr> </tbody> </table> <div class="doc doc-object doc-function"> <h3 id=django_components.extension.ComponentExtension.on_component_data class="doc doc-heading"> <span class="doc doc-object-name doc-function-name">on_component_data</span> <a href=#django_components.extension.ComponentExtension.on_component_data class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_component_data</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-internal" title=" OnComponentDataContext (django_components.extension.OnComponentDataContext)" href=#django_components.extension.OnComponentDataContext>OnComponentDataContext</a></span><span class=p>)</span> <span class=o>-></span> <span class=kc>None</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L717 target=_blank>See source code</a></p> <p>Called when a <a href=../api/#django_components.Component><code>Component</code></a> was triggered to render, after a component's context and data methods have been processed.</p> <p>This hook is called after <a href=../api/#django_components.Component.get_template_data><code>Component.get_template_data()</code></a>, <a href=../api/#django_components.Component.get_js_data><code>Component.get_js_data()</code></a> and <a href=../api/#django_components.Component.get_css_data><code>Component.get_css_data()</code></a>.</p> <p>This hook runs after <a href=../api/#django_components.ComponentExtension.on_component_input><code>on_component_input</code></a>.</p> <p>Use this hook to modify or validate the component's data before rendering.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnComponentDataContext</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L710 target=_blank>See source code</a></p> <p>Called when a <a href=../api/#django_components.Component><code>Component</code></a> was triggered to render, after a component's context and data methods have been processed.</p> <p>This hook is called after <a href=../api/#django_components.Component.get_template_data><code>Component.get_template_data()</code></a>, <a href=../api/#django_components.Component.get_js_data><code>Component.get_js_data()</code></a> and <a href=../api/#django_components.Component.get_css_data><code>Component.get_css_data()</code></a>.</p> <p>This hook runs after <a href=../api/#django_components.ComponentExtension.on_component_input><code>on_component_input</code></a>.</p> <p>Use this hook to modify or validate the component's data before rendering.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnComponentDataContext</span>
|
||||
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
|
||||
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
|
||||
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_component_data</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnComponentDataContext</span><span class=p>)</span> <span class=o>-></span> <span class=kc>None</span><span class=p>:</span>
|
||||
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=c1># Add extra template variable to all components when they are rendered</span>
|
||||
<a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=n>ctx</span><span class=o>.</span><span class=n>template_data</span><span class=p>[</span><span class=s2>"my_template_var"</span><span class=p>]</span> <span class=o>=</span> <span class=s2>"my_value"</span>
|
||||
</code></pre></div> </div> </div><p><strong>Available data:</strong></p> <table> <thead> <tr> <th>name</th> <th>type</th> <th>description</th> </tr> </thead> <tbody> <tr> <td><code>component</code></td> <td><a href=../api#django_components.Component><code>Component</code></a></td> <td>The Component instance that is being rendered</td> </tr> <tr> <td><code>component_cls</code></td> <td><a href=../api#django_components.Component><code>Type[Component]</code></a></td> <td>The Component class</td> </tr> <tr> <td><code>component_id</code></td> <td><code>str</code></td> <td>The unique identifier for this component instance</td> </tr> <tr> <td><code>context_data</code></td> <td><code>Dict</code></td> <td>Deprecated. Use <code>template_data</code> instead. Will be removed in v1.0.</td> </tr> <tr> <td><code>css_data</code></td> <td><code>Dict</code></td> <td>Dictionary of CSS data from <code>Component.get_css_data()</code></td> </tr> <tr> <td><code>js_data</code></td> <td><code>Dict</code></td> <td>Dictionary of JavaScript data from <code>Component.get_js_data()</code></td> </tr> <tr> <td><code>template_data</code></td> <td><code>Dict</code></td> <td>Dictionary of template data from <code>Component.get_template_data()</code></td> </tr> </tbody> </table> <div class="doc doc-object doc-function"> <h3 id=django_components.extension.ComponentExtension.on_component_input class="doc doc-heading"> <span class="doc doc-object-name doc-function-name">on_component_input</span> <a href=#django_components.extension.ComponentExtension.on_component_input class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_component_input</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-internal" title=" OnComponentInputContext (django_components.extension.OnComponentInputContext)" href=#django_components.extension.OnComponentInputContext>OnComponentInputContext</a></span><span class=p>)</span> <span class=o>-></span> <span class=n><a class="autorefs autorefs-external" title=typing.Optional href=https://docs.python.org/3.12/library/typing.html#typing.Optional>Optional</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>]</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L670 target=_blank>See source code</a></p> <p>Called when a <a href=../api/#django_components.Component><code>Component</code></a> was triggered to render, but before a component's context and data methods are invoked.</p> <p>Use this hook to modify or validate component inputs before they're processed.</p> <p>This is the first hook that is called when rendering a component. As such this hook is called before <a href=../api/#django_components.Component.get_template_data><code>Component.get_template_data()</code></a>, <a href=../api/#django_components.Component.get_js_data><code>Component.get_js_data()</code></a>, and <a href=../api/#django_components.Component.get_css_data><code>Component.get_css_data()</code></a> methods, and the <a href=./#django_components.extension.ComponentExtension.on_component_data><code>on_component_data</code></a> hook.</p> <p>This hook also allows to skip the rendering of a component altogether. If the hook returns a non-null value, this value will be used instead of rendering the component.</p> <p>You can use this to implement a caching mechanism for components, or define components that will be rendered conditionally.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnComponentInputContext</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L664 target=_blank>See source code</a></p> <p>Called when a <a href=../api/#django_components.Component><code>Component</code></a> was triggered to render, but before a component's context and data methods are invoked.</p> <p>Use this hook to modify or validate component inputs before they're processed.</p> <p>This is the first hook that is called when rendering a component. As such this hook is called before <a href=../api/#django_components.Component.get_template_data><code>Component.get_template_data()</code></a>, <a href=../api/#django_components.Component.get_js_data><code>Component.get_js_data()</code></a>, and <a href=../api/#django_components.Component.get_css_data><code>Component.get_css_data()</code></a> methods, and the <a href=./#django_components.extension.ComponentExtension.on_component_data><code>on_component_data</code></a> hook.</p> <p>This hook also allows to skip the rendering of a component altogether. If the hook returns a non-null value, this value will be used instead of rendering the component.</p> <p>You can use this to implement a caching mechanism for components, or define components that will be rendered conditionally.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnComponentInputContext</span>
|
||||
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
|
||||
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
|
||||
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_component_input</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnComponentInputContext</span><span class=p>)</span> <span class=o>-></span> <span class=kc>None</span><span class=p>:</span>
|
||||
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=c1># Add extra kwarg to all components when they are rendered</span>
|
||||
<a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=n>ctx</span><span class=o>.</span><span class=n>kwargs</span><span class=p>[</span><span class=s2>"my_input"</span><span class=p>]</span> <span class=o>=</span> <span class=s2>"my_value"</span>
|
||||
</code></pre></div> <div class="admonition warning"> <p class=admonition-title>Warning</p> <p>In this hook, the components' inputs are still mutable.</p> <p>As such, if a component defines <a href=../api/#django_components.Component.Args><code>Args</code></a>, <a href=../api/#django_components.Component.Kwargs><code>Kwargs</code></a>, <a href=../api/#django_components.Component.Slots><code>Slots</code></a> types, these types are NOT yet instantiated.</p> <p>Instead, component fields like <a href=../api/#django_components.Component.args><code>Component.args</code></a>, <a href=../api/#django_components.Component.kwargs><code>Component.kwargs</code></a>, <a href=../api/#django_components.Component.slots><code>Component.slots</code></a> are plain <code>list</code> / <code>dict</code> objects.</p> </div> </div> </div><p><strong>Available data:</strong></p> <table> <thead> <tr> <th>name</th> <th>type</th> <th>description</th> </tr> </thead> <tbody> <tr> <td><code>args</code></td> <td><code>List</code></td> <td>List of positional arguments passed to the component</td> </tr> <tr> <td><code>component</code></td> <td><a href=../api#django_components.Component><code>Component</code></a></td> <td>The Component instance that received the input and is being rendered</td> </tr> <tr> <td><code>component_cls</code></td> <td><a href=../api#django_components.Component><code>Type[Component]</code></a></td> <td>The Component class</td> </tr> <tr> <td><code>component_id</code></td> <td><code>str</code></td> <td>The unique identifier for this component instance</td> </tr> <tr> <td><code>context</code></td> <td><a href=https://docs.djangoproject.com/en/5.2/ref/templates/api/#django.template.Context><code>Context</code></a></td> <td>The Django template Context object</td> </tr> <tr> <td><code>kwargs</code></td> <td><code>Dict</code></td> <td>Dictionary of keyword arguments passed to the component</td> </tr> <tr> <td><code>slots</code></td> <td><code>Dict[str, Slot]</code></td> <td>Dictionary of slot definitions</td> </tr> </tbody> </table> <div class="doc doc-object doc-function"> <h3 id=django_components.extension.ComponentExtension.on_component_registered class="doc doc-heading"> <span class="doc doc-object-name doc-function-name">on_component_registered</span> <a href=#django_components.extension.ComponentExtension.on_component_registered class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_component_registered</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-internal" title=" OnComponentRegisteredContext (django_components.extension.OnComponentRegisteredContext)" href=#django_components.extension.OnComponentRegisteredContext>OnComponentRegisteredContext</a></span><span class=p>)</span> <span class=o>-></span> <span class=kc>None</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L626 target=_blank>See source code</a></p> <p>Called when a <a href=../api/#django_components.Component><code>Component</code></a> class is registered with a <a href=../api/#django_components.ComponentRegistry><code>ComponentRegistry</code></a>.</p> <p>This hook is called after a <a href=../api/#django_components.Component><code>Component</code></a> class is successfully registered.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnComponentRegisteredContext</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L622 target=_blank>See source code</a></p> <p>Called when a <a href=../api/#django_components.Component><code>Component</code></a> class is registered with a <a href=../api/#django_components.ComponentRegistry><code>ComponentRegistry</code></a>.</p> <p>This hook is called after a <a href=../api/#django_components.Component><code>Component</code></a> class is successfully registered.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnComponentRegisteredContext</span>
|
||||
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
|
||||
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
|
||||
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_component_registered</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnComponentRegisteredContext</span><span class=p>)</span> <span class=o>-></span> <span class=kc>None</span><span class=p>:</span>
|
||||
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=nb>print</span><span class=p>(</span><span class=sa>f</span><span class=s2>"Component </span><span class=si>{</span><span class=n>ctx</span><span class=o>.</span><span class=n>component_cls</span><span class=si>}</span><span class=s2> registered to </span><span class=si>{</span><span class=n>ctx</span><span class=o>.</span><span class=n>registry</span><span class=si>}</span><span class=s2> as '</span><span class=si>{</span><span class=n>ctx</span><span class=o>.</span><span class=n>name</span><span class=si>}</span><span class=s2>'"</span><span class=p>)</span>
|
||||
</code></pre></div> </div> </div><p><strong>Available data:</strong></p> <table> <thead> <tr> <th>name</th> <th>type</th> <th>description</th> </tr> </thead> <tbody> <tr> <td><code>component_cls</code></td> <td><a href=../api#django_components.Component><code>Type[Component]</code></a></td> <td>The registered Component class</td> </tr> <tr> <td><code>name</code></td> <td><code>str</code></td> <td>The name the component was registered under</td> </tr> <tr> <td><code>registry</code></td> <td><a href=../api#django_components.ComponentRegistry><code>ComponentRegistry</code></a></td> <td>The registry the component was registered to</td> </tr> </tbody> </table> <div class="doc doc-object doc-function"> <h3 id=django_components.extension.ComponentExtension.on_component_rendered class="doc doc-heading"> <span class="doc doc-object-name doc-function-name">on_component_rendered</span> <a href=#django_components.extension.ComponentExtension.on_component_rendered class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_component_rendered</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><span title=django_components.extension.OnComponentRenderedContext>OnComponentRenderedContext</span></span><span class=p>)</span> <span class=o>-></span> <span class=n><a class="autorefs autorefs-external" title=typing.Optional href=https://docs.python.org/3.12/library/typing.html#typing.Optional>Optional</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>]</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L744 target=_blank>See source code</a></p> <p>Called when a <a href=../api/#django_components.Component><code>Component</code></a> was rendered, including all its child components.</p> <p>Use this hook to access or post-process the component's rendered output.</p> <p>This hook works similarly to <a href=../api/#django_components.Component.on_render_after><code>Component.on_render_after()</code></a>:</p> <ol> <li> <p>To modify the output, return a new string from this hook. The original output or error will be ignored.</p> </li> <li> <p>To cause this component to return a new error, raise that error. The original output and error will be ignored.</p> </li> <li> <p>If you neither raise nor return string, the original output or error will be used.</p> </li> </ol> <p><strong>Examples:</strong></p> <p>Change the final output of a component:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnComponentRenderedContext</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L736 target=_blank>See source code</a></p> <p>Called when a <a href=../api/#django_components.Component><code>Component</code></a> was rendered, including all its child components.</p> <p>Use this hook to access or post-process the component's rendered output.</p> <p>This hook works similarly to <a href=../api/#django_components.Component.on_render_after><code>Component.on_render_after()</code></a>:</p> <ol> <li> <p>To modify the output, return a new string from this hook. The original output or error will be ignored.</p> </li> <li> <p>To cause this component to return a new error, raise that error. The original output and error will be ignored.</p> </li> <li> <p>If you neither raise nor return string, the original output or error will be used.</p> </li> </ol> <p><strong>Examples:</strong></p> <p>Change the final output of a component:</p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnComponentRenderedContext</span>
|
||||
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
|
||||
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
|
||||
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_component_rendered</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnComponentRenderedContext</span><span class=p>)</span> <span class=o>-></span> <span class=n>Optional</span><span class=p>[</span><span class=nb>str</span><span class=p>]:</span>
|
||||
|
@ -170,41 +170,41 @@
|
|||
<a id=__codelineno-2-9 name=__codelineno-2-9 href=#__codelineno-2-9></a> <span class=c1># The component rendered successfully</span>
|
||||
<a id=__codelineno-2-10 name=__codelineno-2-10 href=#__codelineno-2-10></a> <span class=nb>print</span><span class=p>(</span><span class=sa>f</span><span class=s2>"Result: </span><span class=si>{</span><span class=n>ctx</span><span class=o>.</span><span class=n>result</span><span class=si>}</span><span class=s2>"</span><span class=p>)</span>
|
||||
</code></pre></div> </div> </div><p><strong>Available data:</strong></p> <table> <thead> <tr> <th>name</th> <th>type</th> <th>description</th> </tr> </thead> <tbody> <tr> <td><code>component</code></td> <td><a href=../api#django_components.Component><code>Component</code></a></td> <td>The Component instance that is being rendered</td> </tr> <tr> <td><code>component_cls</code></td> <td><a href=../api#django_components.Component><code>Type[Component]</code></a></td> <td>The Component class</td> </tr> <tr> <td><code>component_id</code></td> <td><code>str</code></td> <td>The unique identifier for this component instance</td> </tr> <tr> <td><code>error</code></td> <td><code>Optional[Exception]</code></td> <td>The error that occurred during rendering, or <code>None</code> if rendering was successful</td> </tr> <tr> <td><code>result</code></td> <td><code>Optional[str]</code></td> <td>The rendered component, or <code>None</code> if rendering failed</td> </tr> </tbody> </table> <div class="doc doc-object doc-function"> <h3 id=django_components.extension.ComponentExtension.on_component_unregistered class="doc doc-heading"> <span class="doc doc-object-name doc-function-name">on_component_unregistered</span> <a href=#django_components.extension.ComponentExtension.on_component_unregistered class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_component_unregistered</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-internal" title=" OnComponentUnregisteredContext (django_components.extension.OnComponentUnregisteredContext)" href=#django_components.extension.OnComponentUnregisteredContext>OnComponentUnregisteredContext</a></span><span class=p>)</span> <span class=o>-></span> <span class=kc>None</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L646 target=_blank>See source code</a></p> <p>Called when a <a href=../api/#django_components.Component><code>Component</code></a> class is unregistered from a <a href=../api/#django_components.ComponentRegistry><code>ComponentRegistry</code></a>.</p> <p>This hook is called after a <a href=../api/#django_components.Component><code>Component</code></a> class is removed from the registry.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnComponentUnregisteredContext</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L641 target=_blank>See source code</a></p> <p>Called when a <a href=../api/#django_components.Component><code>Component</code></a> class is unregistered from a <a href=../api/#django_components.ComponentRegistry><code>ComponentRegistry</code></a>.</p> <p>This hook is called after a <a href=../api/#django_components.Component><code>Component</code></a> class is removed from the registry.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnComponentUnregisteredContext</span>
|
||||
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
|
||||
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
|
||||
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_component_unregistered</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnComponentUnregisteredContext</span><span class=p>)</span> <span class=o>-></span> <span class=kc>None</span><span class=p>:</span>
|
||||
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=nb>print</span><span class=p>(</span><span class=sa>f</span><span class=s2>"Component </span><span class=si>{</span><span class=n>ctx</span><span class=o>.</span><span class=n>component_cls</span><span class=si>}</span><span class=s2> unregistered from </span><span class=si>{</span><span class=n>ctx</span><span class=o>.</span><span class=n>registry</span><span class=si>}</span><span class=s2> as '</span><span class=si>{</span><span class=n>ctx</span><span class=o>.</span><span class=n>name</span><span class=si>}</span><span class=s2>'"</span><span class=p>)</span>
|
||||
</code></pre></div> </div> </div><p><strong>Available data:</strong></p> <table> <thead> <tr> <th>name</th> <th>type</th> <th>description</th> </tr> </thead> <tbody> <tr> <td><code>component_cls</code></td> <td><a href=../api#django_components.Component><code>Type[Component]</code></a></td> <td>The unregistered Component class</td> </tr> <tr> <td><code>name</code></td> <td><code>str</code></td> <td>The name the component was registered under</td> </tr> <tr> <td><code>registry</code></td> <td><a href=../api#django_components.ComponentRegistry><code>ComponentRegistry</code></a></td> <td>The registry the component was unregistered from</td> </tr> </tbody> </table> <div class="doc doc-object doc-function"> <h3 id=django_components.extension.ComponentExtension.on_css_loaded class="doc doc-heading"> <span class="doc doc-object-name doc-function-name">on_css_loaded</span> <a href=#django_components.extension.ComponentExtension.on_css_loaded class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_css_loaded</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><span title=django_components.extension.OnCssLoadedContext>OnCssLoadedContext</span></span><span class=p>)</span> <span class=o>-></span> <span class=n><a class="autorefs autorefs-external" title=typing.Optional href=https://docs.python.org/3.12/library/typing.html#typing.Optional>Optional</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>]</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L854 target=_blank>See source code</a></p> <p>Called when a Component's CSS is loaded as a string.</p> <p>This hook runs only once per <a href=../api/#django_components.Component><code>Component</code></a> class and works for both <a href=../api/#django_components.Component.css><code>Component.css</code></a> and <a href=../api/#django_components.Component.css_file><code>Component.css_file</code></a>.</p> <p>Use this hook to read or modify the CSS.</p> <p>To modify the CSS, return a new string from this hook.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnCssLoadedContext</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L843 target=_blank>See source code</a></p> <p>Called when a Component's CSS is loaded as a string.</p> <p>This hook runs only once per <a href=../api/#django_components.Component><code>Component</code></a> class and works for both <a href=../api/#django_components.Component.css><code>Component.css</code></a> and <a href=../api/#django_components.Component.css_file><code>Component.css_file</code></a>.</p> <p>Use this hook to read or modify the CSS.</p> <p>To modify the CSS, return a new string from this hook.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnCssLoadedContext</span>
|
||||
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
|
||||
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
|
||||
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_css_loaded</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnCssLoadedContext</span><span class=p>)</span> <span class=o>-></span> <span class=n>Optional</span><span class=p>[</span><span class=nb>str</span><span class=p>]:</span>
|
||||
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=c1># Modify the CSS</span>
|
||||
<a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=k>return</span> <span class=n>ctx</span><span class=o>.</span><span class=n>content</span><span class=o>.</span><span class=n>replace</span><span class=p>(</span><span class=s2>"Hello"</span><span class=p>,</span> <span class=s2>"Hi"</span><span class=p>)</span>
|
||||
</code></pre></div> </div> </div><p><strong>Available data:</strong></p> <table> <thead> <tr> <th>name</th> <th>type</th> <th>description</th> </tr> </thead> <tbody> <tr> <td><code>component_cls</code></td> <td><a href=../api#django_components.Component><code>Type[Component]</code></a></td> <td>The Component class whose CSS was loaded</td> </tr> <tr> <td><code>content</code></td> <td><code>str</code></td> <td>The CSS content (string)</td> </tr> </tbody> </table> <div class="doc doc-object doc-function"> <h3 id=django_components.extension.ComponentExtension.on_js_loaded class="doc doc-heading"> <span class="doc doc-object-name doc-function-name">on_js_loaded</span> <a href=#django_components.extension.ComponentExtension.on_js_loaded class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_js_loaded</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><span title=django_components.extension.OnJsLoadedContext>OnJsLoadedContext</span></span><span class=p>)</span> <span class=o>-></span> <span class=n><a class="autorefs autorefs-external" title=typing.Optional href=https://docs.python.org/3.12/library/typing.html#typing.Optional>Optional</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>]</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L879 target=_blank>See source code</a></p> <p>Called when a Component's JS is loaded as a string.</p> <p>This hook runs only once per <a href=../api/#django_components.Component><code>Component</code></a> class and works for both <a href=../api/#django_components.Component.js><code>Component.js</code></a> and <a href=../api/#django_components.Component.js_file><code>Component.js_file</code></a>.</p> <p>Use this hook to read or modify the JS.</p> <p>To modify the JS, return a new string from this hook.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnCssLoadedContext</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L867 target=_blank>See source code</a></p> <p>Called when a Component's JS is loaded as a string.</p> <p>This hook runs only once per <a href=../api/#django_components.Component><code>Component</code></a> class and works for both <a href=../api/#django_components.Component.js><code>Component.js</code></a> and <a href=../api/#django_components.Component.js_file><code>Component.js_file</code></a>.</p> <p>Use this hook to read or modify the JS.</p> <p>To modify the JS, return a new string from this hook.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnCssLoadedContext</span>
|
||||
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
|
||||
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
|
||||
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_js_loaded</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnJsLoadedContext</span><span class=p>)</span> <span class=o>-></span> <span class=n>Optional</span><span class=p>[</span><span class=nb>str</span><span class=p>]:</span>
|
||||
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=c1># Modify the JS</span>
|
||||
<a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=k>return</span> <span class=n>ctx</span><span class=o>.</span><span class=n>content</span><span class=o>.</span><span class=n>replace</span><span class=p>(</span><span class=s2>"Hello"</span><span class=p>,</span> <span class=s2>"Hi"</span><span class=p>)</span>
|
||||
</code></pre></div> </div> </div><p><strong>Available data:</strong></p> <table> <thead> <tr> <th>name</th> <th>type</th> <th>description</th> </tr> </thead> <tbody> <tr> <td><code>component_cls</code></td> <td><a href=../api#django_components.Component><code>Type[Component]</code></a></td> <td>The Component class whose JS was loaded</td> </tr> <tr> <td><code>content</code></td> <td><code>str</code></td> <td>The JS content (string)</td> </tr> </tbody> </table> <div class="doc doc-object doc-function"> <h3 id=django_components.extension.ComponentExtension.on_registry_created class="doc doc-heading"> <span class="doc doc-object-name doc-function-name">on_registry_created</span> <a href=#django_components.extension.ComponentExtension.on_registry_created class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_registry_created</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-internal" title=" OnRegistryCreatedContext (django_components.extension.OnRegistryCreatedContext)" href=#django_components.extension.OnRegistryCreatedContext>OnRegistryCreatedContext</a></span><span class=p>)</span> <span class=o>-></span> <span class=kc>None</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L582 target=_blank>See source code</a></p> <p>Called when a new <a href=../api/#django_components.ComponentRegistry><code>ComponentRegistry</code></a> is created.</p> <p>This hook is called after a new <a href=../api/#django_components.ComponentRegistry><code>ComponentRegistry</code></a> instance is initialized.</p> <p>Use this hook to perform any initialization needed for the registry.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnRegistryCreatedContext</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L580 target=_blank>See source code</a></p> <p>Called when a new <a href=../api/#django_components.ComponentRegistry><code>ComponentRegistry</code></a> is created.</p> <p>This hook is called after a new <a href=../api/#django_components.ComponentRegistry><code>ComponentRegistry</code></a> instance is initialized.</p> <p>Use this hook to perform any initialization needed for the registry.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnRegistryCreatedContext</span>
|
||||
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
|
||||
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
|
||||
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_registry_created</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnRegistryCreatedContext</span><span class=p>)</span> <span class=o>-></span> <span class=kc>None</span><span class=p>:</span>
|
||||
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=c1># Add a new attribute to the registry</span>
|
||||
<a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=n>ctx</span><span class=o>.</span><span class=n>registry</span><span class=o>.</span><span class=n>my_attr</span> <span class=o>=</span> <span class=s2>"my_value"</span>
|
||||
</code></pre></div> </div> </div><p><strong>Available data:</strong></p> <table> <thead> <tr> <th>name</th> <th>type</th> <th>description</th> </tr> </thead> <tbody> <tr> <td><code>registry</code></td> <td><a href=../api#django_components.ComponentRegistry><code>ComponentRegistry</code></a></td> <td>The created ComponentRegistry instance</td> </tr> </tbody> </table> <div class="doc doc-object doc-function"> <h3 id=django_components.extension.ComponentExtension.on_registry_deleted class="doc doc-heading"> <span class="doc doc-object-name doc-function-name">on_registry_deleted</span> <a href=#django_components.extension.ComponentExtension.on_registry_deleted class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_registry_deleted</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><a class="autorefs autorefs-internal" title=" OnRegistryDeletedContext (django_components.extension.OnRegistryDeletedContext)" href=#django_components.extension.OnRegistryDeletedContext>OnRegistryDeletedContext</a></span><span class=p>)</span> <span class=o>-></span> <span class=kc>None</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L604 target=_blank>See source code</a></p> <p>Called when a <a href=../api/#django_components.ComponentRegistry><code>ComponentRegistry</code></a> is being deleted.</p> <p>This hook is called before a <a href=../api/#django_components.ComponentRegistry><code>ComponentRegistry</code></a> instance is deleted.</p> <p>Use this hook to perform any cleanup related to the registry.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnRegistryDeletedContext</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L601 target=_blank>See source code</a></p> <p>Called when a <a href=../api/#django_components.ComponentRegistry><code>ComponentRegistry</code></a> is being deleted.</p> <p>This hook is called before a <a href=../api/#django_components.ComponentRegistry><code>ComponentRegistry</code></a> instance is deleted.</p> <p>Use this hook to perform any cleanup related to the registry.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnRegistryDeletedContext</span>
|
||||
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
|
||||
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
|
||||
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_registry_deleted</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnRegistryDeletedContext</span><span class=p>)</span> <span class=o>-></span> <span class=kc>None</span><span class=p>:</span>
|
||||
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=c1># Remove registry from the extension's cache on deletion</span>
|
||||
<a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a> <span class=bp>self</span><span class=o>.</span><span class=n>cache</span><span class=o>.</span><span class=n>pop</span><span class=p>(</span><span class=n>ctx</span><span class=o>.</span><span class=n>registry</span><span class=p>,</span> <span class=kc>None</span><span class=p>)</span>
|
||||
</code></pre></div> </div> </div><p><strong>Available data:</strong></p> <table> <thead> <tr> <th>name</th> <th>type</th> <th>description</th> </tr> </thead> <tbody> <tr> <td><code>registry</code></td> <td><a href=../api#django_components.ComponentRegistry><code>ComponentRegistry</code></a></td> <td>The to-be-deleted ComponentRegistry instance</td> </tr> </tbody> </table> <div class="doc doc-object doc-function"> <h3 id=django_components.extension.ComponentExtension.on_slot_rendered class="doc doc-heading"> <span class="doc doc-object-name doc-function-name">on_slot_rendered</span> <a href=#django_components.extension.ComponentExtension.on_slot_rendered class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_slot_rendered</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><span title=django_components.extension.OnSlotRenderedContext>OnSlotRenderedContext</span></span><span class=p>)</span> <span class=o>-></span> <span class=n><a class="autorefs autorefs-external" title=typing.Optional href=https://docs.python.org/3.12/library/typing.html#typing.Optional>Optional</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>]</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L908 target=_blank>See source code</a></p> <p>Called when a <a href=../template_tags/#slot><code>{% slot %}</code></a> tag was rendered.</p> <p>Use this hook to access or post-process the slot's rendered output.</p> <p>To modify the output, return a new string from this hook.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnSlotRenderedContext</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L895 target=_blank>See source code</a></p> <p>Called when a <a href=../template_tags/#slot><code>{% slot %}</code></a> tag was rendered.</p> <p>Use this hook to access or post-process the slot's rendered output.</p> <p>To modify the output, return a new string from this hook.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnSlotRenderedContext</span>
|
||||
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
|
||||
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
|
||||
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_slot_rendered</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnSlotRenderedContext</span><span class=p>)</span> <span class=o>-></span> <span class=n>Optional</span><span class=p>[</span><span class=nb>str</span><span class=p>]:</span>
|
||||
|
@ -219,13 +219,13 @@
|
|||
<a id=__codelineno-1-7 name=__codelineno-1-7 href=#__codelineno-1-7></a> <span class=n>slot_owner</span> <span class=o>=</span> <span class=n>slot_node</span><span class=o>.</span><span class=n>template_component</span>
|
||||
<a id=__codelineno-1-8 name=__codelineno-1-8 href=#__codelineno-1-8></a> <span class=nb>print</span><span class=p>(</span><span class=sa>f</span><span class=s2>"Slot owner: </span><span class=si>{</span><span class=n>slot_owner</span><span class=si>}</span><span class=s2>"</span><span class=p>)</span>
|
||||
</code></pre></div> </div> </div><p><strong>Available data:</strong></p> <table> <thead> <tr> <th>name</th> <th>type</th> <th>description</th> </tr> </thead> <tbody> <tr> <td><code>component</code></td> <td><a href=../api#django_components.Component><code>Component</code></a></td> <td>The Component instance that contains the <code>{% slot %}</code> tag</td> </tr> <tr> <td><code>component_cls</code></td> <td><a href=../api#django_components.Component><code>Type[Component]</code></a></td> <td>The Component class that contains the <code>{% slot %}</code> tag</td> </tr> <tr> <td><code>component_id</code></td> <td><code>str</code></td> <td>The unique identifier for this component instance</td> </tr> <tr> <td><code>result</code></td> <td><code>SlotResult</code></td> <td>The rendered result of the slot</td> </tr> <tr> <td><code>slot</code></td> <td><code>Slot</code></td> <td>The Slot instance that was rendered</td> </tr> <tr> <td><code>slot_is_default</code></td> <td><code>bool</code></td> <td>Whether the slot is default</td> </tr> <tr> <td><code>slot_is_required</code></td> <td><code>bool</code></td> <td>Whether the slot is required</td> </tr> <tr> <td><code>slot_name</code></td> <td><code>str</code></td> <td>The name of the <code>{% slot %}</code> tag</td> </tr> <tr> <td><code>slot_node</code></td> <td><code>SlotNode</code></td> <td>The node instance of the <code>{% slot %}</code> tag</td> </tr> </tbody> </table> <div class="doc doc-object doc-function"> <h3 id=django_components.extension.ComponentExtension.on_template_compiled class="doc doc-heading"> <span class="doc doc-object-name doc-function-name">on_template_compiled</span> <a href=#django_components.extension.ComponentExtension.on_template_compiled class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_template_compiled</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><span title=django_components.extension.OnTemplateCompiledContext>OnTemplateCompiledContext</span></span><span class=p>)</span> <span class=o>-></span> <span class=kc>None</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L831 target=_blank>See source code</a></p> <p>Called when a Component's template is compiled into a <a href=https://docs.djangoproject.com/en/5.2/ref/templates/api/#django.template.Template><code>Template</code></a> object.</p> <p>This hook runs only once per <a href=../api/#django_components.Component><code>Component</code></a> class and works for both <a href=../api/#django_components.Component.template><code>Component.template</code></a> and <a href=../api/#django_components.Component.template_file><code>Component.template_file</code></a>.</p> <p>Use this hook to read or modify the template (in-place) after it's compiled.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnTemplateCompiledContext</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L821 target=_blank>See source code</a></p> <p>Called when a Component's template is compiled into a <a href=https://docs.djangoproject.com/en/5.2/ref/templates/api/#django.template.Template><code>Template</code></a> object.</p> <p>This hook runs only once per <a href=../api/#django_components.Component><code>Component</code></a> class and works for both <a href=../api/#django_components.Component.template><code>Component.template</code></a> and <a href=../api/#django_components.Component.template_file><code>Component.template_file</code></a>.</p> <p>Use this hook to read or modify the template (in-place) after it's compiled.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnTemplateCompiledContext</span>
|
||||
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
|
||||
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
|
||||
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_template_compiled</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnTemplateCompiledContext</span><span class=p>)</span> <span class=o>-></span> <span class=kc>None</span><span class=p>:</span>
|
||||
<a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a> <span class=nb>print</span><span class=p>(</span><span class=sa>f</span><span class=s2>"Template origin: </span><span class=si>{</span><span class=n>ctx</span><span class=o>.</span><span class=n>template</span><span class=o>.</span><span class=n>origin</span><span class=o>.</span><span class=n>name</span><span class=si>}</span><span class=s2>"</span><span class=p>)</span>
|
||||
</code></pre></div> </div> </div><p><strong>Available data:</strong></p> <table> <thead> <tr> <th>name</th> <th>type</th> <th>description</th> </tr> </thead> <tbody> <tr> <td><code>component_cls</code></td> <td><a href=../api#django_components.Component><code>Type[Component]</code></a></td> <td>The Component class whose template was loaded</td> </tr> <tr> <td><code>template</code></td> <td><code>django.template.base.Template</code></td> <td>The compiled template object</td> </tr> </tbody> </table> <div class="doc doc-object doc-function"> <h3 id=django_components.extension.ComponentExtension.on_template_loaded class="doc doc-heading"> <span class="doc doc-object-name doc-function-name">on_template_loaded</span> <a href=#django_components.extension.ComponentExtension.on_template_loaded class=headerlink title="Permanent link">¤</a></h3> <div class="doc-signature highlight"><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=nf>on_template_loaded</span><span class=p>(</span><span class=n>ctx</span><span class=p>:</span> <span class=n><span title=django_components.extension.OnTemplateLoadedContext>OnTemplateLoadedContext</span></span><span class=p>)</span> <span class=o>-></span> <span class=n><a class="autorefs autorefs-external" title=typing.Optional href=https://docs.python.org/3.12/library/typing.html#typing.Optional>Optional</a></span><span class=p>[</span><span class=n><a class="autorefs autorefs-external" href=https://docs.python.org/3.12/library/stdtypes.html#str>str</a></span><span class=p>]</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L806 target=_blank>See source code</a></p> <p>Called when a Component's template is loaded as a string.</p> <p>This hook runs only once per <a href=../api/#django_components.Component><code>Component</code></a> class and works for both <a href=../api/#django_components.Component.template><code>Component.template</code></a> and <a href=../api/#django_components.Component.template_file><code>Component.template_file</code></a>.</p> <p>Use this hook to read or modify the template before it's compiled.</p> <p>To modify the template, return a new string from this hook.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnTemplateLoadedContext</span>
|
||||
</code></pre></div> <div class="doc doc-contents first"> <p><a href=https://github.com/django-components/django-components/tree/master/src/django_components/extension.py#L797 target=_blank>See source code</a></p> <p>Called when a Component's template is loaded as a string.</p> <p>This hook runs only once per <a href=../api/#django_components.Component><code>Component</code></a> class and works for both <a href=../api/#django_components.Component.template><code>Component.template</code></a> and <a href=../api/#django_components.Component.template_file><code>Component.template_file</code></a>.</p> <p>Use this hook to read or modify the template before it's compiled.</p> <p>To modify the template, return a new string from this hook.</p> <p><strong>Example:</strong></p> <div class=highlight><pre><span></span><code><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a><span class=kn>from</span><span class=w> </span><span class=nn>django_components</span><span class=w> </span><span class=kn>import</span> <span class=n>ComponentExtension</span><span class=p>,</span> <span class=n>OnTemplateLoadedContext</span>
|
||||
<a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
|
||||
<a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a><span class=k>class</span><span class=w> </span><span class=nc>MyExtension</span><span class=p>(</span><span class=n>ComponentExtension</span><span class=p>):</span>
|
||||
<a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a> <span class=k>def</span><span class=w> </span><span class=nf>on_template_loaded</span><span class=p>(</span><span class=bp>self</span><span class=p>,</span> <span class=n>ctx</span><span class=p>:</span> <span class=n>OnTemplateLoadedContext</span><span class=p>)</span> <span class=o>-></span> <span class=n>Optional</span><span class=p>[</span><span class=nb>str</span><span class=p>]:</span>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue