удалить элементы из набора запросов для вложенной перегруппировки - PullRequest
0 голосов
/ 15 апреля 2011

Я работал над проектом, который рассматривает производительность как главный приоритет, поэтому я пытаюсь использовать одиночные запросы для каждой страницы, чтобы собрать всю необходимую информацию.

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

Это мой результат запроса

    +------------+-------------------+------------+-----------+----+-----------+-----------+---------+----+-------------+-------------+
| col_mapper | list_title        | main_title | list_slug | id | slug      | is_active | site_id | id | domain      | name        |
+------------+-------------------+------------+-----------+----+-----------+-----------+---------+----+-------------+-------------+
| L          | gadget            | for sale   | gadget    |  2 | for-sale  |         1 |       1 |  1 | example.com | example.com |
| L          | furniture         | for sale   | frnture   |  2 | for-sale  |         1 |       1 |  1 | example.com | example.com |
| L          | engines           | for sale   | engines   |  2 | for-sale  |         1 |       1 |  1 | example.com | example.com |
| L          | women seeking men | personals  | wsm       |  1 | personals |         1 |       1 |  1 | example.com | example.com |
| L          | missed connection | personals  | misd-conn |  1 | personals |         1 |       1 |  1 | example.com | example.com |
| L          | men seeking women | personals  | msw       |  1 | personals |         1 |       1 |  1 | example.com | example.com |
| R          | massage           | services   | massage   |  3 | srvces    |         1 |       1 |  1 | example.com | example.com |
| R          | computers         | services   | compters  |  3 | srvces    |         1 |       1 |  1 | example.com | example.com |
+------------+-------------------+------------+-----------+----+-----------+-----------+---------+----+-------------+-------------+

В моем шаблоне я сделал что-то вроде этого

            {% regroup dict by col_mapper as column_gr %}

        {% for column in column_gr %}                
            {{ column.grouper }}<br>

            {% regroup column.list by main_title as item_gr %}
                {% for i in item_gr %}
                    {{ i }}
                {% endfor %}
        {% endfor %}

Первая перегруппировка работает нормально, но как только она попадает во вторую перегруппировку, она снова перегруппирует весь набор запросов, а я хочу толькоперегруппировать, где col_mapper равен col_mapper.grouper.Я пытался создать собственный тег, но большинство известных мне подходов приведут к тому, что набор запросов снова попадет в базу данных для фильтрации.

Есть предложения?

1 Ответ

1 голос
/ 15 апреля 2011

Я не проверял это, но вы можете попробовать:

{% regroup dict by col_mapper as column_gr %}

{% for column in column_gr %}                
    {{ column.grouper }}<br>
    {# assign the grouper to another variable #}
    {% with column.grouper as grouper %}
        {% regroup grouper by main_title as item_gr %}
        {% for i in item_gr %}
            {{ i }}
        {% endfor %}
    {% endwith %}
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...