Is there an easy way in Django to do the following?

In blah.html:

   <p>{{ buttonDecidedAtRunTime }} blah blah blah</p>

In the Context passed to blah.html at run-time:

   buttonDecidedAtRunTime: '{% include "button4.html %}'
   thisPage: "/some/path"

   Naturally, the included template might be button1.html,
button2.html, etc., depending on run-time decisions.

In button4.html:

   <a href="{{ thisPage }}?action=button4action">html  for button #4</
a>


The kicker is the {{ thisPage }} inside button4.html.  I'm hoping to
pass thisPage in the context sent to blah.html.  This would make the
code really simple.  Of course, the code you see above will just show
the string literal '{% include "button4.html %}' right in your
browser.

What's needed is something like eval for template tags.  I could
imagine:

   {% eval %}{% buttonDecidedAtRunTime %}{% endeval %}

or maybe even better would be:

   {% eval buttonDecidedAtRunTime %}

Is there a way to do this?  If it's not already in Django, does it
look easy to implement?  I haven't yet implemented a custom tag, but I
read the chapter in the book, and it doesn't look too hard.  On the
other hand, I don't want to spend days mired in it if it's hard.

Or, is there a better way to do what I'm trying to do?  Right now, I
see two other options:  render button4.html and pass the result as the
value of buttonDecidedAtRunTime (this complicates the Python code a
bit, since thisPage must be passed to the subroutine that decides
which button to render); or use {% if %} tags in blah.html (kind of
ugly, involves difficulties with parameter-passing, and we need to do
this all over the place, though we could stuff the {% if %} logic into
an included template).


Ben Kovitz
http://decisionero.com


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to