2016-12-11 7 views
1

少なくとも1つのフィールドにこの名前が含まれていると、オブジェクトをフィルタして結果を取得したいと考えています。多くのフィールドを持つDjangoフィルタ

models.py:

class Item(BaseModel): 
    name = models.CharField(max_length=255) 
    seller = models.ForeignKey(Company) 
    quantity = models.FloatField(default=0.0) 

私はこの1つを試してみましたが、それは動作しません。

views.py:

search_filter_kw = {} 
item_name = request.GET.get("searchitemname", '') 

if item_name != '': 
      search_filter_kw['Q(name__contains) | Q(seller__name__contains)'] = item_name 
+0

は、Q(name__contains =アイテム) '試しください| Q(seller_name__contains = item) 'です。 –

+0

辞書で@KlausDどうすればいいですか? –

答えて

4
Item.objects.filter(Q(name__icontains=item_name) | Q(seller__name__icontains=item_name)) 
+0

あなたはそれに私を打つ! :) –

+0

しかし、私は私の検索で別のドロップダウンと入力があるので、私の辞書でこれを実行したい、私は私の例でこれを行うことができますか? –

+0

@ I.Jokhadzeおっと、私はあなたがそれのより単純なバージョンを必要と思った。 Qオブジェクトと空の値の可能性があるORを実装するには、私の選択よりも複雑になります。これを見てみてくださいhttps://djangosnippets.org/snippets/1700/ –

関連する問題