8

クエリ検索をすべてのモデル フィールドと比較しようとしていますが、複数のフィールドで比較する方法がわかりません。

これは私のコードです。

expense = Expense.objects.filter(user=request.user.id).order_by('date')

q = request.GET['q']
result = expense.filter(name__icontains=q)

チェックインしたい: name, amount,category

前もって感謝します

4

1 に答える 1

18

Django のドキュメントから:

「キーワード引数クエリ – filter() など – は、一緒に「AND」されます。より複雑なクエリ (OR ステートメントを含むクエリなど) を実行する必要がある場合は、Q オブジェクトを使用できます。」

from django.db.models import Q
expense.objects.filter(
    Q(name__icontains=q) | Q(amount__icontains=q) | Q(category__icontains=q)
)

モデルの金額とカテゴリのタイプがわからないため、アイコンテインが機能しない可能性があります。

このリンクを参照してください。

于 2013-02-23T20:18:35.143 に答える