Представьте один queryset в 2 столбцах отделения (django шаблон)

Установка gVim на всех платформах Вы используете.

Тогда пробегает vimtutor (:help vimtutor или vimtutor в командной строке).

Часы следующая лекция и следуют ее совету: 7 Привычек Для Эффективного Редактирования текста 2.0

я говорю, что Вы определенно хотите начать использовать его для всего своего редактирования. Если Вы боитесь, что потеря производительности тогда занимает выходные для осуществления его твердый (я однажды сделал это для переключения на Дворака от стандартного расположения букв на клавиатуре и имел мою производительность достаточно высоко к понедельнику и сумел придерживаться его после).

Это стоит усилия, и Вы не оглянетесь назад!

15
задан skaffman 9 November 2010 в 23:44
поделиться

2 ответа

Я рекомендую использовать фильтры Django .

Фрагменты Django предоставляют фильтр шаблона разделения , который можно использовать, например:

{% load listutil %}

<div class="grid_8 alpha">
    {% for sport in sports|partition:"2"|first %}
        <!-- Blah Blah -->
    {% endfor %}
</div>

<div class="grid_8 omega">
    {% for sport in sports|partition:"2"|last %}
        <!-- Blah Blah -->
    {% endfor %}
</div>
15
ответ дан 1 December 2019 в 03:43
поделиться

Я думаю, вам придется создать свой собственный тег шаблона для разделения запросов. Я бы сделал что-то вроде.

from django.template import Library, Node, TemplateSyntaxError
from restaurants.forms import MenuItemForm

class Split(Node):
    def __init__(self, queryset, split_count=2, basename=None):
        self.queryset_name = queryset
        self.split_count = split_count
        self.basename = basename if basename else queryset

    def render(self, context):
        qs = context[self.queryset_name]
        qs_break = len(qs)/self.split_count
        for x in xrange(0, self.split_count-1):
            context["%s_%i"%(self.basename, x+1)] = qs[qs_break*x:qs_break*(x+1)]
        context["%s_%i"%(self.basename, x+2)] = qs[qs_break*x+1:]
        return ''        



def split(parser, token):
    """
    Call from template will be
    {% split <queryset> on <count> as <name> %}
    """
    tokens = token.split_contents()
    if len(tokens) > 6:
        raise TemplateSyntaxError("Too many Tokens")
    #Do various tests to make sure it's right.
    return Split(tokens[1], tokens[3], tokens[5])

split = register.tag(split)

Обратите внимание, что я на самом деле не тестировал этот код, поэтому он может сильно потерпеть неудачу, но он должен указать вам правильное направление, чтобы убрать эти вещи из вашего поля зрения.

0
ответ дан 1 December 2019 в 03:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: