मैं की तरह एक बुनियादी Django मॉडल है:Django Tastypie उन्नत छनन: क्यू के साथ जटिल लुकअप कैसे करना वस्तुओं
qset = (
Q(name__icontains=query) |
Q(description__icontains=query) |
Q(email__icontains=query)
)
results = Business.objects.filter(qset).distinct()
: मैं की तरह ऊपर मॉडल पर एक जटिल क्वेरी को निष्पादित करने की जरूरत है
class Business(models.Model):
name = models.CharField(max_length=200, unique=True)
email = models.EmailField()
phone = models.CharField(max_length=40, blank=True, null=True)
description = models.TextField(max_length=500)
मैं कोशिश की है कोई भाग्य के साथ tastypie का उपयोग कर निम्न:
और tastypie के लिए वर्ग मेटा में मैं के रूप में स्थापित फ़िल्टरिंग:
filtering = {
'name: ALL,
'description': ALL,
'email': ALL,
'query': ['icontains',],
}
मैं यह कैसे से निपटने कर सकते हैं करने के लिए कोई भी विचार?
धन्यवाद - न्यूटन
यह ठीक काम करता है। धन्यवाद – nknganda
शब्दकोश में कोई विधि 'विस्तार' नहीं है। होना चाहिए: orm_filters.update ({'custom': qset}) –
यह समाधान डीबी को दो बार कॉल करने का कारण बनता है (अर्द्ध_फिल्टर के लिए और फिर कस्टम फ़िल्टर के लिए)। मेरे लिए थोड़ा अलग कोड काम करता है: यदि लागू 'फ़िल्टर' में 'कस्टम' है: कस्टम = apply_filters.pop ('custom') वापसी Outreaches.objects.filter (कस्टम) अन्य: वापसी सुपर (आउटरीच रिसोर्स, स्वयं) .apply_filters (अनुरोध, लागू_फिल्टर) –