Opened 6 years ago
Closed 6 years ago
#30539 closed Bug (worksforme)
Django - “with / as” to fill block is not working.
| Reported by: | Jay Day | Owned by: | nobody |
|---|---|---|---|
| Component: | Template system | Version: | dev |
| Severity: | Normal | Keywords: | templates, blocks, with |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
I am trying to not repeat myself in Django, but use the same content for 2 blocks. The content is static so I would rather have in in my templates than sending them through views.
This was the solution I found :
{% with "My title" as title %}
{% block TitleOne %}{{ title }}{% endblock TitleOne %}
{% block TitleTwo %}{{ title }}{% endblock TitleTwo %}
{% endwith %}
In a templates that extends a second one that uses the blocks TitleOne and TitleTwo .
But it does not work. If I write it like :
{% block TitleOne %}"My title"{% endblock TitleOne %}
{% block TitleTwo %}"My title"{% endblock TitleTwo %}
It works perfectly. But of course it s not DRY. If I write it like :
{% with "My title" as title %}
{% block TitleOne %}"My title"{% endblock TitleOne %}
{% block TitleTwo %}{{ title }}{% endblock TitleTwo %}
{% endwith %}
Only the 1st one displays right. But not DRY as well.
Tried another way suggested in Django's docs : https://docs.djangoproject.com/en/2.2/ref/templates/builtins/#with
{% with title="My title" %}
{% block TitleOne %}"My title"{% endblock TitleOne %}
{% block TitleTwo %}{{ title }}{% endblock TitleTwo %}
{% endwith %}
Only the 1st one displayed too..
(I am using Django 2.2.1, Python 3.7.3)
Change History (1)
comment:1 by , 6 years ago
| Resolution: | → worksforme |
|---|---|
| Status: | new → closed |
| Summary: | Django - “with / as” to fill block is not working → Django - “with / as” to fill block is not working. |
| UI/UX: | unset |
| Version: | 2.2 → master |
Thanks for the report, however I cannot reproduce your issue. In all described cases everything works for me.