2012-03-31 13 views
0

に挑戦し、私は、このモデルでオブジェクトに一致するようにしようとしている:ジャンゴフィルタフィールドロケータは、フォーム送信=「ジョン・ドウ」から私のPOSTデータの場合

class Person(models.Model): 
    first_name = models.CharField(max_length=50) 
    last_name = models.CharField(max_length=50) 

私はそれをどのように行うのですか?私が試した

person = Person.objects.filter(last_name__in=post_data,first_name__in=post_data) 

「__in」フィールドロケータは、リストを探しているので、それは動作しません。

私が試した

person = Person.objects.filter(last_name__in=list(post_data),first_name__in=list(post_data)) 

を私はFIRST_NAMEまたはlast_nameのいずれかと一致していない項目は「ジョン・ドウ」であるとの1項目リストを作成しましたので、それは動作しません。人物オブジェクト。

初心者を助けてください。ありがとう!

答えて

1

あなたはこのようなものを使用することができます:

 
    from django.db.models import Q 
    ... 
    for w in post_data.split(): 
     qs = qs.filter(Q(first_name__icontains=w)|Q(last_name__icontains=w)) 

それは、入力文字列を分割し、FIRST_NAMEまたはLAST_NAMEに対するすべての単語と一致します。

+0

ありがとうございます!私はあなたのアプローチを使用し、少しカスタマイズして、問題を解決することができました。 – mb52089

関連する問題