Вы можете создать итератор, который будет создавать пару элементов на каждой итерации.
Что-то вроде
from itertools import tee, izip, islice
iter1, iter2 = tee(object_list)
object_list = izip(islice(iter1, 0, None, 2), islice(iter2, 1, None, 2))
# if object_list == [1,2,3,4,5,6,7,8] then result will be iterator with data: [(1, 2), (3, 4), (5, 6), (7, 8)]
Или вы можете сделать трюк в шаблоне:
{% for item in object_list %}
{% if forloop.counter0|divisibleby:2 %}
<tr>
<td><a href="{{ item.url }}"><img src="{{ MEDIA_URL }}{{ item.image }}" width="300" height="100" /></a></td>
<td> </td>
{% else %}
<td><a href="{{ item.url }}"><img src="{{ MEDIA_URL }}{{ item.image }}" width="300" height="100" /></a></td>
</tr>
{% endif %}
{% endfor %}
Но убедитесь, что в вашем наборе есть даже элементы, иначе <tr>
не будет закрыт.