1

このドキュメントによると、Djangoオブジェクト変数でクエリセット「_contains」を使用して結果をフィルタリングできるはずです。

しかし、このコードを実装すると、次のようになります。

cookbooks = Books.objects.filter (category_contains = 'cooking')

次のエラーが発生します。

Cannot resolve keyword 'category_contains' into field. Choices are: category, adder, date etc.

なぜこうなった?私はまた、誰かが変数を使用するだけで意味することを説明するこのStackOverflowの質問を見ました。しかし、私が書くと、同様のエラーが発生します。categorycategory_exactcategory_exact

4

2 に答える 2

5

__単一のアンダースコアではなく、二重のアンダースコアを使用する必要があります_

于 2012-05-17T19:05:50.170 に答える
3

__フィールドルックアップには、1つ()ではなく2つのアンダースコア()が接頭辞として付けられます_。構文に慣れていない場合、最初は違いがわかりにくい場合があります。

一般的なフィールドルックアップのドキュメントを再確認してください。具体的には、ドキュメントが含まれています。これは、1つまたは2つのアンダースコアを示すコメント付きのcontainsドキュメントの例です。

Entry.objects.get(headline__contains='Lennon')
#                         __ <-- 2 _'s
#                     not _  <-- 1 _
于 2012-05-17T19:19:54.360 に答える