mirror of
https://github.com/django-components/django-components.git
synced 2025-08-03 13:58:16 +00:00
Missing context variables and kwargs in component_block (#17)
* Fix issue with missing variables by binding template to context in Component.render method. * Pass extra_context to Component.render() Co-authored-by: rbeard0330 <@dul2k3BKW6m>
This commit is contained in:
parent
ab46ec7d69
commit
be0a75e2a3
5 changed files with 63 additions and 5 deletions
|
@ -85,7 +85,9 @@ class Component(with_metaclass(MediaDefiningClass)):
|
|||
else:
|
||||
nodelist.append(node)
|
||||
|
||||
return nodelist.render(Context(context))
|
||||
render_context = Context(context)
|
||||
with render_context.bind_template(template.template):
|
||||
return nodelist.render(render_context)
|
||||
|
||||
return template.render(context)
|
||||
|
||||
|
|
|
@ -138,8 +138,8 @@ class ComponentNode(Node):
|
|||
|
||||
def render(self, context):
|
||||
extra_context = {
|
||||
key: filter_expression.resolve(context)
|
||||
for key, filter_expression in self.extra_context.items()
|
||||
key: context_item.resolve(context) if hasattr(context_item, 'resolve') else context_item
|
||||
for key, context_item in self.extra_context.items()
|
||||
}
|
||||
context.update(extra_context)
|
||||
|
||||
|
@ -149,7 +149,7 @@ class ComponentNode(Node):
|
|||
slots_filled = context.render_context[COMPONENT_CONTEXT_KEY][self.component]
|
||||
return self.component.render(slots_filled=slots_filled, **context.flatten())
|
||||
|
||||
return self.component.render()
|
||||
return self.component.render(**extra_context)
|
||||
|
||||
|
||||
@register.tag("component_block")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue