Garfonzo
Garfonzo

Reputation: 3966

Django -- One Template used with multiple variables

I'm trying to display a list of tickets in an HTML table. The table has various headings to display various aspects of the tickets. I would like to present this same table in a bunch of different locations across my project.

I've made a single template of /templates/shared/ticket_list.html in which presents the ticket list and then I {% include %} it where I need to display this listing. Simple enough.

However, there are a couple of pages in my project where I have a Bootstrap tabbed div. I want to display this table of tickets in both tabs, but with a different set of tickets. The HTML for this essentially requires that I {% include %} my table template twice on the same HTML page.

For example:

In the view, I might have something like:

created_by_ticks = Ticket.objects.filter(created_by = self.request.user)
assigned_to_ticks = Ticket.objects.filter(assigned_to = self.request.user)

The problem is, in my ticket table template, how would I present both querysets since the table itself is likely expecting a single variable name, such as:

{% for t in tickets %}
<tr>...

{% endfor %}

But passing in two querysets of tickets, I now have two ticket variables of created_by_ticks and assigned_to_ticks.

Any ideas how I could use that single ticket table template, but use multiple variables, or some other solution?

Upvotes: 0

Views: 420

Answers (1)

Tim
Tim

Reputation: 1357

You can use the with functionality of the include tag:

{% include 'shared/ticket_list.html' with tickets=created_by_ticks %}
{% include 'shared/ticket_list.html' with tickets=assigned_to_ticks %}

Upvotes: 2

Related Questions