मान लें कि मेरे पास एक पोस्टकोड फ़ील्ड वाला पता मॉडल है। मैं पोस्टकोड इस लाइन के साथ "123" के साथ शुरू के साथ पतों देखने कर सकते हैं:डीजेगो फ़ील्ड पर शुरू होता है
Address.objects.filter(postcode__startswith="123")
अब, मैं इस "दूसरी तरह के आसपास" खोज करने की जरूरत है। मेरे पास एक पोस्टकोड_prefix फ़ील्ड वाला पता मॉडल है, और मुझे उन सभी पतों को पुनर्प्राप्त करने की आवश्यकता है जिनके लिए postcode_prefix किसी दिए गए कोड का उपसर्ग है, जैसे कि "12345"। तो अगर मेरे डीबी में मेरे पास postcode_prefix = "123" और "234" के साथ 2 पते थे, तो केवल पहला ही वापस कर दिया जाएगा।
कुछ की तरह:
Address.objects.filter("12345".startswith(postcode_prefix))
समस्या यह है कि यह काम नहीं करता है। एकमात्र समाधान मैं के साथ आ सकते हैं, जैसे पहले चार पर एक फिल्टर प्रदर्शन करने के लिए है:
Address.objects.filter(postcode_prefix__startswith="12345"[0])
और फिर, जब मैं परिणाम प्राप्त, एक सूची समझ है कि उन्हें ठीक से फिल्टर, इस तरह करते हैं:
results = [r for r in results if "12345".startswith(r.postcode_prefix)]
क्या डीजेंगो में ऐसा करने का कोई बेहतर तरीका है? , धन्यवाद फैब्रिजियो
क्या उपसर्ग की लंबाई तय है या इसमें परिवर्तनीय लंबाई है? – cyroxx
परिवर्तनीय लंबाई :) – sfabriz