2011-01-28 17 views

cevap

60
reduce(operator.and_, (Q(first_name__contains=x) for x in ['x', 'y', 'z'])) 
+2

sayesinde değişen olacaktır. Bunu nasıl kullanacağımdan hala emin değilim ... – neolaser

+9

'User.objects.filter (küçült (...))' User.objects.filter (Q (first_name__contains = 'x') & Q (first_name__contains = 'y') & Q (first_name__contains = 'z')) –

+0

tamam harika! teşekkürler Ignacio ve Yuji – neolaser

18
import operator 
from django.db.models import Q 

q = ['x', 'y', 'z'] 
query = reduce(operator.and_, (Q(first_name__contains = item) for item in ['x', 'y', 'z'])) 
result = User.objects.filter(query) 
+3

Hey :) olarak değiştirerek, belirli bir listede bir değere sahip olan tüm satırları bulmam gerektiği sorunu çözdüm. SO'ya hoşgeldiniz. Cevabınıza biraz et ekleyerek mi? Normalde diğer kullanıcılara neler olup bittiğini daha iyi anlatabilmek için basit bir kod dökümünden daha fazla bilgi vermeyi isteriz. Teşekkürler ^^ – Patrice

+10

@Patrice 339K temsilcisi olan adam tarafından seçilen cevaba aynı yorumu yapabilir. Bu cevap en azından daha fazla içeriğe sahip. :) – bozdoz

+0

, Python 3 kullanıyorsanız, 'import functools' işlevini kullanın ve' functools.reduce' işlevini kullanın. Bkz. [This] (https://stackoverflow.com/a/10226421/1526703) – Anupam

İlgili konular