2009-06-09 13 views
2

私はDjangoモデルをアイテムのリストにしていますが、各リストのアイテムに別々の並べ替え順序が必要です。たぶんリスト1は、名前でリスト項目をソートし、日付でリスト2を、優先順位でリスト3を作成します。Django関連モデルを指定する並べ替え順序

モデルは、多かれ少なかれ、次のようになります。

class ListItem(models.Model): 
    priority = models.IntegerField(choices=PRIORITY_CHOICES) 
    name = models.CharField(max_length=240) 
    due_date = models.DateTimeField(null=True, blank=True) 
    list = models.ForeignKey(List) 

今私は、私の見解では、このクエリを使用しています:

lists = List.objects.filter(user=request.user) 
return render_to_response('showlists.html', {'lists': lists }) 

私は私が行うことができることを意味するものでは例を読みました

lists = List.objects.filter(user=request.user).select_related().order_by("items.name") 

これを仮定すると、私には同じアイテムの各バッチのソート順。個々のリストの関連アイテムを別々にソートするにはどうすればいいですか?

答えて

3

各サブリストのクエリをキックオフことができfilter用として2つの下線は、フォーマット、あなたが行うことができます。

List.objects.filter(user=request.user).select_related().order_by("listitems__name") 

あなたべきで異なるフィールドを使用するだけでできますorder_byコールでも同様です。

+0

ありがとうございます。それぞれのリストごとに違ったやり方をする簡単な方法はありますか?それらを分割し、1つずつソートする必要がありますか? –

2

リストが小さい場合は、あなたがdo it in python、並べ替えを使用して

list = <...code to get sublist here ...> 
list.sort(key=lambda x: x.due_date) #sort by due date, say 

をタグ付けすると、そうでない場合は、関連するモデル間で注文するための構文は同じです

関連する問題