Может возможно сделать такую же групировку в темплейтах?
Вадим
если не расширять шаблоны и не извращаться, то такую группировку на
шаблонах сделать нельзя (хм, считая, что нужно выводить по 5
элементов, если использовать '|slice:"{{x}}:{{y}}"', плюс add в
шаблонах для инкремента на 5, то я, наверное, смог бы так извратиться
;) ).
Тем не менее, на djangosnippets штук пять таких "группировщиков" (все
чуть-чуть разные), или ещё можно сделать подобную штуку через css и
<li> -- получишь резиновость, которой у тебя не будет с
группировщиком. К недостаткам CSS+LI относится трудность настройки.
Но мой совет -- оставь всё как есть. Ведь тебе скорее всего нужно
делать это один раз (или два).
У тебя даже нет нужды писать html во вьюхе, ты просто делаешь из
одномерного массива двухмерный и его потом будешь рендерить.
2010/7/28 Wadim <wadim.ov...@gmail.com>:
--
Best regards, Yuri V. Baburov, ICQ# 99934676, Skype: yuri.baburov,
MSN: bu...@live.com
register = Library()
class SplitListNode(Node):
def __init__(self, list_string, chunk_size, new_list_name):
self.list = list_string
self.chunk_size = chunk_size
self.new_list_name = new_list_name
def split_seq(self, seq, size):
""" Split up seq in pieces of size, from
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/425044"""
return [seq[i:i+size] for i in range(0, len(seq), size)]
def render(self, context):
context[self.new_list_name] =
self.split_seq(context[self.list], int(self.chunk_size))
return ''
def split_list(parser, token):
"""<% split_list list as new_list 5 %>"""
bits = token.contents.split()
if len(bits) != 5:
raise TemplateSyntaxError, "split_list list as new_list 5"
return SplitListNode(bits[1], bits[4], bits[3])
split_list = register.tag(split_list)
Спасибо. так с сделаю. нашел пару пример как это делать в темплейте.
но код получается еще запутанней.
думаю, что на мысли может навести вот такая конструкция:
zip(*((i for i in lst),)*N)
где lst - ваш список, а N - количество колонок
P.S.: последняя, не полная строка не отображается
--
Serge Matveenko
jabber:se...@matveenko.ru
microblog:http://identi.ca/lig
profile:http://ru.linkedin.com/in/sergematveenko