Hello,
I sometimes have to pass more complex content into an include or another
tag as a variable. The {% with %} tag and filters aren't enough to for
example render an HTML button and pass it into another include.
I'd like to request a {% with_html variable %} tag in the built in tag
set. Like the one below....
@register.tag
> def with_html(parser, token):
> nodelist = parser.parse(('endwith_html',))
> parser.delete_first_token()
> return WithHTML(nodelist, token.contents.split()[1])
>
> class WithHTML(template.Node):
> def __init__(self, nodelist, variable):
> self.nodelist = nodelist
> self.variable = variable
> def render(self, context):
> context[self.variable] = self.nodelist.render(context)
> return ''
A use case would be for example...
{% with_html extra %}
> {% if row.0.ingredient_set.count %}{{ row.0.ingredient_set.count }}
> Ingredients{% endif %}
> {% if row.0.step_set.count %}<br/>{{ row.0.step_set.count }} Steps{%
> endif %}
> {% endwith_html %}
> {% with item_title=row.0.title item_description=row.0.description
> item_image=row.0.image item_extra=extra item_link=row.0.link
> item_button=newsletter.recipe_button %}
> {% include "newsletter/email_full.html" %}
> {% endwith %}
This type of tag would help keep the code more DRY in my opinion since the
rendering logic for the complex content doesn't need extra files and I can
now make includes more generic. It would be a great compliment to the
already existing with tag.
--
- Paul Kenjora
- 602-214-7285
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/CAEH8JE07Kcumv_TaMY-vSnLN3UaM3k8HScB5oT1Oi%3Dt%3DjcsF1Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.