Выходные индексы Django для упорядоченного набора объектов - PullRequest
1 голос
/ 10 ноября 2011

В настоящее время у меня настроена модель данных, в которой у каждого объекта School есть имя. На основной странице моего сайта я вывожу все объекты Школы, отсортированные в алфавитном порядке по имени. Я надеялся, что у Django будет способ создать индексные заголовки для объектов? Под этим я подразумеваю категоризировать каждый школьный объект по первой букве его названия. Это оказалось бы очень полезным для меня, так как я могу затем предоставить названия разделов для потенциально длинного списка школ. В идеале, вместо того, чтобы возвращать все школьные объекты в шаблон, я хотел бы манипулировать / сортировать объекты таким образом, чтобы они были классифицированы в словарь массивов, где ключами основного словаря являются буквы в алфавите ( исключая те, для которых нет названий школ, начинающихся с этой буквы), а значения являются массивами школ, названия которых начинаются с первой буквы соответствующего ключа. Это позволило бы легко зацикливаться в системе шаблонов django для достижения того, что я хочу сделать с заголовками разделов. Любая помощь будет принята с благодарностью. Это родной для Джанго? Или мне придется использовать какую-то логику питона?

1 Ответ

1 голос
/ 10 ноября 2011

вы не можете заставить базу данных сгруппировать их, но это довольно простой фрагмент кода:

# obviously adapt this to your actual model
schools = School.objects.order_by('name').all()

school_dict = {}
for school in schools:
    first_letter = school.name[0].lower()
    if first_letter in school_dict:
        school_dict[first_letter].append(school)
    else:
        school_dict[first_letter] = [school]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...