2011-11-10 16 views
1

現在、各Schoolオブジェクトに名前が設定されているデータモデルが設定されています。私のウェブサイトのメインページには、すべてのSchoolオブジェクトをアルファベット順にソートして出力しています。私は、Djangoがオブジェクトのインデックスタイトルを作成する方法があることを期待していましたか?これは、各学校オブジェクトをその名前の最初の文字で分類することを意味します。これは、私が非常に有用なものであると証明するでしょう。理想的には、すべての学校オブジェクトをテンプレートに戻すのではなく、配列の辞書に分類されるような方法でオブジェクトを操作/並べ替えたいと思います。メイン辞書のキーはアルファベットの文字です(その文字で始まる学校名がないものは除く)、値は対応するキーの最初の文字で始まる名前の学校の配列です。これは、セクションヘッダーで何をしたいのかを達成するために、djangoテンプレートシステムでループするのが非常に簡単になります。どんな助けでも大歓迎です。これはDjangoにネイティブですか?あるいは、私はいくつかのPythonロジックを採用する必要がありますか?オブジェクトの順序付きセットのDjango出力インデックス

答えて

1

あなたはグループにそれらをデータベースを取得することはできませんが、それは、コードのかなり簡単作品だ:

# 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] 
関連する問題