2016-12-09 3 views
3

私は、例えば郵便番号のリストを持っている: -Djangoリストをソースとしてcontainsを使用してクエリしますか?

postcodes = ['LDN 4DN','MAN 4RF'] 

アドレスフィールド、サンプルのアドレスフィールドは、その中に、ポストコードありました

「1ダウニング街、ロンドン、イングランド、LDN 4DN」 '10道、マンチェスター、イングランド、

site = SiteData.objects.filter(address__icontains=postcodes[0])) 
を使用してMAN 4RF」 '20 Highalnds、スコットランド、SCT L40'

イム

ループ内で各サイトを取得するには少し時間がかかるようですが、それを含むことは可能ですか?

たとえば、リスト内の2つのポストコードのレコードを取得するクエリを実行できますか?仕事を文句を言わない

おかげ

+0

を私は問題が何であるか、それは少し明確にするためにあなたの質問を変更しました。これが間違っていればロールバックしてもよろしいですか? – Sayse

+0

こんにちは、私はそれを大事にする必要はありませんか?問題は、同じクエリでcontainsとinをどのように使用できるかということでした。 – AlexW

+0

'icontains'は大文字と小文字を区別しませんが、それ自体が含まれています' in'は基本的にとにかくです – Sayse

答えて

7

、明らかに - しかし、あなたは「または」クエリ構築するためにmodels.Qを使用することができます。

import operator 

clauses = (Q(address__icontains=p) for p in postcodes) 
query = reduce(operator.or_, clauses) 
site = SiteData.objects.filter(query) 
+0

完璧!ありがとう – AlexW

関連する問題