--
Ticket URL: <https://code.djangoproject.com/ticket/21695>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
* needs_better_patch: => 0
* needs_tests: => 0
* needs_docs: => 0
Comment:
Do any other block tags support `as var`? I'm not sure it's a good idea
(or feasible for that matter). Could you describe your use case? Do you
have interest in trying to implement it?
--
Ticket URL: <https://code.djangoproject.com/ticket/21695#comment:1>
Comment (by mitar):
Ehm, use case is string interpolation. I cannot use `{% trans "foo {{ bar
}}" as var %}`. Having only constant translated strings are vars is a bit
problematic.
I use that for setting title of the page (`{% blocktrans %}{{ username
}}'s block{% endblocktrans %}`) and I would like to set it to the context
variable so that I can reuse it around (title, heading, links ...).
Currently I am using [http://django-
missing.readthedocs.org/en/latest/templatetags.html#missing.templatetags.context_tags.setcontext
this custom tag] to achieve this. But I think this would be useful in the
tag itself. Or maybe `{% trans "foo {{ bar }}" as var %}` should be
supported at least? And `_("foo {{ bar }}")`.
--
Ticket URL: <https://code.djangoproject.com/ticket/21695#comment:2>
* cc: bmihelac@… (added)
--
Ticket URL: <https://code.djangoproject.com/ticket/21695#comment:3>
Comment (by bmihelac):
Here is a link to branch that implements this feature and two simple
tests:
https://github.com/bmihelac/django-1/compare/fix-21695-allow-blocktrans-
to-set-a-context-variable?expand=1
Please note that assigning option is named `asvar` contrary to usual `as`
to avoid confusion between legacy format for using `with`.
If there is interest in merging this I will add docs and changelog and any
more tests if needed.
--
Ticket URL: <https://code.djangoproject.com/ticket/21695#comment:4>
* stage: Unreviewed => Accepted
Comment:
It seems that every tag is going to gain this feature eventually...
--
Ticket URL: <https://code.djangoproject.com/ticket/21695#comment:5>
Comment (by mitar):
This is why I created [http://django-
missing.readthedocs.org/en/latest/templatetags.html#missing.templatetags.context_tags.setcontext
this tag] which simply sets the context based on whatever is in there.
Then there is no need to modify all tags to be able to set context. DRY.
:-)
--
Ticket URL: <https://code.djangoproject.com/ticket/21695#comment:6>
* owner: nobody => dracos
* status: new => assigned
* has_patch: 0 => 1
Comment:
I have rebased bmihelac's patch on current master, made a few changes,
added more tests and documentation, and submitted a PR at
https://github.com/django/django/pull/4854
I have a need for this at the moment - exactly the same situation as why
it's useful for trans, using the output in multiple places (most commonly,
title element and heading). It works great for trans, but if the title
happens to include a variable, I'm stuck.
--
Ticket URL: <https://code.djangoproject.com/ticket/21695#comment:7>
* needs_better_patch: 0 => 1
--
Ticket URL: <https://code.djangoproject.com/ticket/21695#comment:8>
* needs_better_patch: 1 => 0
* stage: Accepted => Ready for checkin
--
Ticket URL: <https://code.djangoproject.com/ticket/21695#comment:9>
* status: assigned => closed
* resolution: => fixed
Comment:
In [changeset:"839edcebb39f55acf163266f1ce1f0dc537de95b" 839edceb]:
{{{
#!CommitTicketReference repository=""
revision="839edcebb39f55acf163266f1ce1f0dc537de95b"
Fixed #21695 -- Added asvar option to blocktrans.
Thanks Bojan Mihelac for the initial patch.
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/21695#comment:10>