1

私はそのようなモデルを持っていると言います:

class Foo(models.Model):
 name = models.CharField("name",max_length=25)
 type = models.IntegerField("type number")

Foo.objects.filter()のようなクエリを実行した後、クエリ結果を次のようにグループ化します。

[  [{"name":"jb","type:"whiskey"},{"name":"jack daniels","type:"whiskey"}],
[{"name":"absolute","type:"vodka"},{name:"smirnoff ":"vodka"}],
[{name:"tuborg","type":beer}]
]

ご覧のとおり、アイテムを辞書のリストとしてグループ化します。辞書の代わりにグループクエリリストのリストも歓迎されます:)

よろしく

4

4 に答える 4

3

valuesこれは、クエリセットのメソッドを使用して実行できます。

http://docs.djangoproject.com/en/1.1/ref/models/querysets/#values-fields

値(*フィールド)

ValuesQuerySetを返します-モデルインスタンスオブジェクトの代わりに辞書のリストに評価されるQuerySet。

于 2009-12-30T18:56:43.703 に答える
2

を使用して、ビューでグループ化を行うことができますitertools.groupby()

于 2009-12-30T22:25:56.857 に答える
2

再グループ化テンプレートタグを確認してください。テンプレートに表示するためのグループ化を行う場合は、これが必要です。それ以外の場合は、ソースを読んで、グループ化がどのように行われるかを確認できます。

于 2009-12-30T19:12:18.497 に答える
1

order_byを使用して、これを行うことができます。

Foo.objects.order_by( "type" );
drinks = Foo.objects.all( )

これで、種類別に注文した飲み物の配列ができました。これを使用するか、関数を記述して、線形スキャンで並べ替えることなく、必要な構造を作成できます。

于 2009-12-30T18:59:28.210 に答える