2010-09-09 9 views
7

करने के लिए क्वेरी मैं एक डेटाबेस है जो कई कुछ जानकारी युक्त क्षेत्रों के साथ रिकॉर्ड है की है।Django सूची

कुछ फिल्टर मैं यह कर होता मिलान तालिका में सभी डेटा प्राप्त करने के लिए:

records = Record.objects.filter(fieldA='a') 

रिकॉर्ड, मुझे लगता है, एक क्वेरीसमूह वस्तु है और एक रिकॉर्ड की "सूची" में शामिल है। क्या वो सही है?

अब मान लीजिए कि मैं एक क्षेत्र में मानों की सूची चाहते हैं।

मैं ऐसा करते हैं तो:

records = Record.objects.filter(fieldA='a').only('fieldB') 

मैं अभी भी एक क्वेरीसमूह मिलता है, लेकिन अब यह कुछ टाल खाने हैं। मैं जो चाहता हूं वह सिर्फ उन मूल्यों की एक सूची है जो मैं उर्फ ​​फील्ड बी को पकड़ने के लिए था। मैं भी फील्ड बी के विशिष्ट मूल्यों को पकड़ने में सक्षम होना चाहता हूं। मैं मैं सिर्फ प्रत्येक रिकॉर्ड से अधिक पुनरावृति सकता है, fieldB बाहर खींच, एक सूची में जोड़ने अगर यह पहले से ही वहाँ नहीं है लगता है, और वहाँ यह है, लेकिन वहाँ एक बेहतर तरीका हो होगा।

धन्यवाद!

संपादित करें: मुझे लगता है कि मैं क्या तलाश कर रहा हूँ

Record.objects.values_list('fieldB') 
+0

http://stackoverflow.com/questions/4424435/how-to-convert-a-django-queryset-to-a-list – Wtower

उत्तर

10

हाँ, यह पाया है। http://docs.djangoproject.com/en/dev/ref/models/querysets/ यहां संदर्भ

+5

यह एक (('एक 1-मूल्य tuples 'की सूची का उत्पादन ',), (' बी ',), (' सी ',))', जो शायद आप नहीं चाहते हैं। यदि आप flat_list ('record.objects.values_list ('fieldB', flat = True) के लिए फ्लैट = सही पास करते हैं, तो आपको एक फ्लैट सूची '(' a ',' b ',' c ') मिलेगी। –

4

मैं इसे और अधिक प्रमुख बनाने के लिए James द्वारा टिप्पणी पोस्ट कर रहा हूं। यह निश्चित रूप से मैं क्या देख रहा था।

मैं मूल्यों की एक सूची चाहता था। QuerySet विधि .list_values() tuples की एक सूची लौटे का उपयोग करना। मूल्यों की सूची प्राप्त करने के लिए, मुझे flat=True विकल्प की आवश्यकता थी।

Record.objects.values_list('fieldB', flat=True) 
संबंधित मुद्दे