0

私はこのようないくつかのコードを持っています:

cats = Category.objects.filter(is_featured=True)
for cat in cats:
    entries = Entry.objects.filter(score>=10, category=cat).order_by("-pub_date")[:10]

しかし、結果は猫の最後のアイテムを表示するだけで、フィルターの ">=" の場所にも問題があります。これらの問題を解決するのを手伝ってください。本当にありがとう!

4

2 に答える 2

2

このテーマに関するdjangoのドキュメントを読むことから始めたいと思うかもしれません。ただし、開始するために、このfilter()メソッドは他のメソッドとまったく同じであり、式ではなく引数とキーワード引数のみを取ります。だから、あなたは言うことはできませんfoo <= bar、ただfoo=bar。Djangoは、渡す値との関係をキーワード名で示すことができるようにすることで、この制限を回避します。この場合、次を使用します。

Entry.objects.filter(score__gte=10)

フィールド名に追加されるの__gteは、実行される比較を示します(score >= 10)。

于 2010-03-03T04:34:26.520 に答える
1

entriesforループの各反復に追加しないため、最後のカテゴリの結果のみが得られます。これを試して:

entries = Entry.objects.filter(score__gte=10, category__is_featured=True).order_by("-pub_date")[:10]
于 2010-03-03T04:55:55.170 に答える