Джанго перегруппировка не работает, как ожидалось - PullRequest
9 голосов
/ 11 марта 2009

Я недавно начал изучать джанго.

Я отображаю свой шаблон с помощью списка городов, как,

{'citylist': Cities.objects.all()}

И хотите перегруппировать страну по шаблону (так же, как в django-docs) ниже:

{% regroup citylist by country as coutrylist %}

<ul>
{% for country in countrylist %}
    <li>{{ country.grouper }}
    <ul>
        {% for c in country.list %}
        <li>{{ c.name }}</li>
        {% endfor %}
    </ul>
    </li>
{% endfor %}
</ul>

но я получаю некоторые неожиданные результаты,

France
  Strasbourg

Australia
  Penrith
  Sydney

US
  Larsen Bay

France
  Reims

US
  Avenal

Не думаю, что я делаю что-то не так в своем шаблоне. Или это ошибка ??

Ответы [ 2 ]

9 голосов
/ 11 марта 2009

Проблема не в коде, а в данных, которые вы вводите.

Измените свой контекст на

{'citylist': Cities.objects.all().order_by('country')}

django-docs упоминает, что

Самое простое решение этой проблемы - убедиться в том, что в вашем представлении кода данные упорядочены в соответствии с тем, как вы хотите их отобразить.

2 голосов
/ 04 мая 2009

Я также хотел бы указать на документацию для другого решения. http://docs.djangoproject.com/en/dev/ref/templates/builtins/#regroup

Вы можете отсортировать свой словарь в шаблоне.

{% regroup citylist ** | dictsort: "страна" ** по стране в качестве списка стран%}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...