Components API Reference
All component base classes live in dj_design_system.components. Any new
component class added to that module will appear here automatically.
dj_design_system.components
BaseComponent(**kwargs)
Source code in dj_design_system/components.py
45 46 47 48 49 50 51 | |
__init_subclass__(**kwargs)
Validate Meta constraint declarations at class definition time.
Source code in dj_design_system/components.py
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | |
docstring()
classmethod
Return a string describing the API of this component, including its parameters and their types.
Source code in dj_design_system/components.py
138 139 140 141 142 143 144 145 146 147 148 149 | |
get_app_label()
classmethod
Return the app label this component was discovered in.
Source code in dj_design_system/components.py
158 159 160 161 162 163 | |
get_classes_string()
Get a string of CSS classes based on the context. This can be used in the template to apply conditional styling.
Source code in dj_design_system/components.py
95 96 97 98 99 100 101 102 103 | |
get_context()
Get the context for rendering the component. This method can be overridden by subclasses to add additional or edit other context variables.
Source code in dj_design_system/components.py
84 85 86 87 88 89 90 91 92 93 | |
get_media()
classmethod
Return the CSS and JS static URL paths required by this component.
Delegates to ComponentInfo.media — see that property for full
documentation of auto-discovery and Media class override behaviour.
Source code in dj_design_system/components.py
172 173 174 175 176 177 178 179 180 181 | |
get_name()
classmethod
Return the component's registered name from the registry.
Source code in dj_design_system/components.py
151 152 153 154 155 156 | |
get_params()
classmethod
Get the parameters for this component. Returns a dictionary of all BaseParam descriptors defined on the class (or any subclass in the MRO).
Source code in dj_design_system/components.py
125 126 127 128 129 130 131 132 133 134 135 136 | |
get_positional_args()
classmethod
Return the list of positional arg names from the class's own Meta.positional_args.
Only looks at the class's own Meta — positional_args are NOT
inherited from parent classes, matching Django's convention that
Meta is not inherited. This avoids silent ordering surprises when
subclassing.
Source code in dj_design_system/components.py
183 184 185 186 187 188 189 190 191 192 193 194 195 196 | |
get_relative_path()
classmethod
Return the relative path within the app's components directory.
Source code in dj_design_system/components.py
165 166 167 168 169 170 | |
map_positional_args(positional_args, args, kwargs)
staticmethod
Map positional arguments to keyword arguments using the positional_args spec.
Source code in dj_design_system/components.py
198 199 200 201 202 203 204 205 206 | |
render()
Render the component as an HTML string.
Source code in dj_design_system/components.py
105 106 107 108 109 | |
validate_params()
An override hook allowing param combinations or values to raise exceptions if necessary
Source code in dj_design_system/components.py
53 54 55 | |
BlockComponent(content, **kwargs)
Bases: BaseComponent
A component registered as a Django simple_block_tag, allowing
for nested template content.
The template should include a {content} placeholder where the
inner content will be rendered. content is always the first
positional argument and should NOT appear in Meta.positional_args.
Use Meta.positional_args to declare additional positional args
beyond content::
class SectionComponent(BlockComponent):
title = StrParam("Section title.")
class Meta:
positional_args = ["title"]
This allows {% section "My Title" %}...{% endsection %}.
Source code in dj_design_system/components.py
269 270 271 | |
as_tag()
classmethod
Return a template tag function with content as first arg, plus any Meta.positional_args.
Source code in dj_design_system/components.py
284 285 286 287 288 289 290 291 292 293 | |
get_context()
Add content to the context automatically.
content is the block body passed by the template engine — it is
NOT a declared BaseParam and should not appear in Meta.positional_args
or docstring() output.
Source code in dj_design_system/components.py
273 274 275 276 277 278 279 280 281 282 | |
TagComponent(**kwargs)
Bases: BaseComponent
A component registered as a Django simple_tag.
Subclass this for components that produce a single HTML fragment without wrapping nested template content.
Use Meta.positional_args to declare parameters that can be passed
as positional arguments in the template tag::
class IconComponent(TagComponent):
name = StrParam("The icon name.")
class Meta:
positional_args = ["name"]
This allows {% icon "check" %} instead of {% icon name="check" %}.
Source code in dj_design_system/components.py
45 46 47 48 49 50 51 | |
as_tag()
classmethod
Return a template tag function mapping positional args via Meta.positional_args.
Source code in dj_design_system/components.py
231 232 233 234 235 236 237 238 239 240 | |
options: members: true show_root_heading: false show_source: true show_symbol_type_heading: true show_symbol_type_toc: true docstring_style: google merge_init_into_class: true group_by_category: true