2009-08-24 23 views
3

DjangoにObjects.filterで使用するワイルドカード文字はありますか?Djangoのワイルドカード(Objects.filter)

Prices.objects.filter(a = example1 
        ,b = example2 
        #,c = example3 
) 

すなわち代わりにCをコメントアウトで、私はC = WILDCARDまたはcを入れることができませんでした= * ...あなたが得る:

たとえば、これを行うのと等価である文字がありますジスト。ありがとうございました。

EDIT:検索する属性の大きなリストを持っていて、選択した数個の検索だけをしたい場合、それらの特定の検索を行う機能がたくさんあるわけではありません。私はDjangoに言い、次に "このフィールドは問題ではなく、私はここにすべてが欲しい"という文字を必要とします...フィールドを含めずに(例のように)、関数の分割を作成します。

答えて

7

唯一のことは、あなたが動的にフィルタ属性名と値の辞書です:

filters = {"a": "example1", "b": "example2", "c": "example3" } 
prices = Prices.objects.filter(**filters) 

その後、あなたはフィルターが実行時のdict設定します必要に応じてキー/ valのペアを追加または削除します。その**フィルターはキーワードの引数です。詳細についてはここをクリックしてください:

http://www.nomadjourney.com/2009/04/dynamic-django-queries-with-kwargs/

+0

まだそれはまだ働いていません! objects.filterはどのようにキーをモデルに入れるべきかを知っていますか? – Federer

8

containsicontainsを試してみてください。ここで

は一例です:行うには

Foo.objects.filter(name__icontains = 'hello') #fetches all whose name field contains 'hello' 
+0

魅力的に働いた!ありがとうございました! – Federer

+0

あなたは大歓迎です:) – shanyu