Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 21, 2010 15:12:24

ex
От:
Зарегистрирован: 2009-09-28
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Шаблон для вывода таблицы

Доброго времени суток,
ни как не могу разобраться (или мне таки хочется странного?) как написать шаблон для вывода 2-у и 3-х мерных таблиц.

для одномерной все понятно

<table>
{% for common in commons %}
<tr>
<td>{{ common }}</td>
</tr>
{% endfor %}
</table>
а как сделать для двумерной? ну или совместить вывод 2-х списков? нужно что то в духе
<table>
{% for name, value in commons %}
<tr><td>name</td><td>value</td></tr>
{% endfor %}
</table>
если по обчному, то в питоне все просто и понятно
>>> commons = { 'one': 1, 'two': 2, 'three': 3 }
>>> for common in commons:
... print "%s | %s" % (common, commons[common])
...
three | 3
two | 2
one | 1



Офлайн

#2 Апрель 21, 2010 15:45:27

ex
От:
Зарегистрирован: 2009-09-28
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Шаблон для вывода таблицы

простите, туплю

{% for name, value in commons.items %}



Офлайн

#3 Апрель 21, 2010 17:52:58

ex
От:
Зарегистрирован: 2009-09-28
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Шаблон для вывода таблицы

lorien
Как много слов, ничего не понятно.

Есть два списка и

Что вам нужно получить?
<table>
<tr><td>1</td><td>4</td></tr>
<tr><td>2</td><td>5</td></tr>
<tr><td>3</td><td>6</td></tr>
</table>



Офлайн

#4 Апрель 21, 2010 17:59:47

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Шаблон для вывода таблицы

@register.filter
def col2(obj, iter):
try:
if iter == 0:
return False
else:
if len(obj) % 2 == 0:
total = len(obj)/2
else:
total = len(obj)/2 + 1
return iter % total == 0
except:
return False



Офлайн

#5 Апрель 21, 2010 18:17:30

ex
От:
Зарегистрирован: 2009-09-28
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Шаблон для вывода таблицы

regall
@register.filter
def col2(obj, iter):
try:
if iter == 0:
return False
else:
if len(obj) % 2 == 0:
total = len(obj)/2
else:
total = len(obj)/2 + 1
return iter % total == 0
except:
return False
А зачем? Ведь можно шаблоном:
<table>
{% for name, value in commons.items %}
<tr>
<td>{{ name }}</td><td>{{ value }}</td>
</tr>
{% endfor %}
</table>
а передавать ему словарик commons:
commons = { 'one': 1, 'two': 2, 'three': 3 }



Офлайн

#6 Апрель 21, 2010 21:37:35

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Шаблон для вывода таблицы

ex
А зачем? Ведь можно шаблоном:
В моем случае легко модифицировать для n колонок если потребуется, то есть делить не на 2, а на n.



Офлайн

#7 Апрель 22, 2010 09:54:19

ex
От:
Зарегистрирован: 2009-09-28
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Шаблон для вывода таблицы

lorien
ex, вам нужно использовать функцию zip для подготовки данных во view
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> zip(a, b)
[(1, 4), (2, 5), (3, 6)]
это чудесно, благодарю :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version