1252748
1252748

Reputation: 15372

Pass Dynamic Value to Django url built-in

Within a view, I am maintaining a dictionary containing some data I would like to display in an <a> in a template with the Django url built-in.

my_view.py

links = [
  {
    'name': 'link 1',
    'pattern': 'fe:upload'
  },
  {
    'name': 'link 2',
    'pattern': 'fe:download'
  }
]

It will work hardcoded like this:

<a href="{% url 'fe:upload' id %}">up</a>
<a href="{% url 'fe:download' id %}">down</a>

However I'm struggling to put it into a loop

my_template.html

<ul>
  {% for link in links %}
    <li>
      <a href='{% url link.pattern id %}'>{{link.name}}</a>
    </li>
  {% endfor %}
</ul>

I have tried:

u'with' received an invalid token: u"'link.pattern'"

how can I put a dynamic pattern into this loop to generate an anchor?

Upvotes: 0

Views: 2072

Answers (1)

rollingthedice
rollingthedice

Reputation: 1125

Have you tried the following:

{% with link.pattern as link_pattern %}
    <li>
      <a href='{% url link_pattern id %}'>{{link.name}}</a>
    </li>
{% endwith %}

Upvotes: 2

Related Questions