質問

私はアイテムのリストですDjangoのモデルを持っていると私は、各リストの項目は、別のソート順序を持っていると思います。たぶん、リスト1は、優先順位によって名前、日付別リスト2、リスト3のラインアイテムをソートします。

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

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")

働いていた、それは項目の各バッチについて、同一のソート順と私にリストのコレクションを与えると仮定。どのように私は異なり、個々のリストの関連項目を並べ替えて行くのでしょうか?

役に立ちましたか?

解決

関連モデル間で注文するための構文はfilterと同じ二重のアンダースコア形式ですので、あなたが行うことができます:

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

あなたはorder_by呼び出しで同じように異なるフィールドを使用するだけでできるはずます。

他のヒント

リストが小さい場合は、

、あなたは使用して、Pythonのの中でそれを行うことができソートとタグ付け

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

それ以外の場合は、各サブリストのクエリをキックオフ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top