Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有序对象集的Django输出索引_Python_Django - Fatal编程技术网

Python 有序对象集的Django输出索引

Python 有序对象集的Django输出索引,python,django,Python,Django,我目前已经建立了一个数据模型,其中每个学校对象都有一个名称。在我网站的主页上,我输出了所有按名称字母顺序排列的学校对象。我希望Django有办法为对象创建索引标题?我的意思是按照每个学校物体名字的第一个字母来分类。这对我来说非常有用,因为我可以为可能很长的学校列表提供部分标题。理想情况下,我不想将所有学校对象返回到模板,而是希望以这样一种方式对对象进行操作/排序,即将对象分类到数组字典中,其中主字典的键是字母表中的字母(不包括那些没有以该字母开头的学校名称的对象),这些值是学校的数组,其名称以相

我目前已经建立了一个数据模型,其中每个学校对象都有一个名称。在我网站的主页上,我输出了所有按名称字母顺序排列的学校对象。我希望Django有办法为对象创建索引标题?我的意思是按照每个学校物体名字的第一个字母来分类。这对我来说非常有用,因为我可以为可能很长的学校列表提供部分标题。理想情况下,我不想将所有学校对象返回到模板,而是希望以这样一种方式对对象进行操作/排序,即将对象分类到数组字典中,其中主字典的键是字母表中的字母(不包括那些没有以该字母开头的学校名称的对象),这些值是学校的数组,其名称以相应键的第一个字母开头。这将使得在django模板系统中进行循环非常容易,以完成我想要对节头执行的操作。任何帮助都将不胜感激。这是Django土生土长的吗?还是我必须使用一些python逻辑?

您无法让数据库对它们进行分组,但这是一段相当简单的代码:

# 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]

您无法让数据库对它们进行分组,但这是一段相当简单的代码:

# 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]