2013-10-14 7 views
7

मैं peewee का उपयोग कर अलग तालिकाओं से दो फ़ील्ड का चयन करने की कोशिश कर रहा हूँ। मेरा मानना ​​है कि मेरी समस्या परिणामी वस्तु पर पुनरावृत्ति के साथ है।पायथन peewee - एकाधिक टेबल से चुनें

मैं अजगर में निम्नलिखित कोड है:

SELECT t1.`SystemHeader_Name`, t4.`System_Value` 
FROM `system_headers` AS t1 
INNER JOIN `system_header_link` AS t2 ON (t1.`SystemHeader_ID` = t2.`SystemHeader_ID`) 
INNER JOIN `system_data_link` AS t3 ON (t2.`SystemHeaderLink_ID` = t3.`SystemHeaderLink_ID`) 
INNER JOIN `system_data` AS t4 ON (t3.`SystemData_ID` = t4.`SystemData_ID`) 

निष्पादित कि MySQL Workbench में मैं दो क्षेत्रों के साथ एक मेज मिल: SystemHeader_Name, System_Value

sHeader_Value = (System_Headers 
    .select(System_Headers.SystemHeader_Name, System_Data.System_Value) 
    .join(System_Header_Link) 
    .join(System_Data_Link) 
    .join(System_Data)) 

कि कोड निम्नलिखित एसक्यूएल उत्पन्न करता है।

मैं क्वेरी रैपर से System_Value प्राप्त करने का तरीका जानने का प्रयास कर रहा हूं।

for s in sHeader_Value: 
    print s.SystemHeader_Name, s.System_Value 

मुझे लगता है कि 'System_Headers' object has no attribute 'System_Value' बताते हुए, एक AttributeError के साथ प्रस्तुत कर रहा हूँ: अगर मैं निम्नलिखित है।

ध्यान दें कि अगर मैं केवल print s.SystemHeader_Name करने का प्रयास करता हूं, तो यह निष्पक्ष रूप से निष्पादित होता है।

मैं अपने System_Value फ़ील्ड के मानों को कैप्चर कैसे करूं?

उत्तर

10

मैंने अभी यह पता लगाया कि समस्या क्या थी। डेटा ऑब्जेक्ट यह System_Headers ऑब्जेक्ट है, जो उस विशिष्ट तालिका का मॉडल है। इस प्रकार, उस मॉडल में System_Value विशेषता नहीं है। मेरे peewee कोड में naive() जोड़कर यह मेरे System_Headers मॉडल पर विशेषता उत्तीर्ण कर दिया, इस प्रकार मुझे System_Value फ़ील्ड तक पहुंचने की इजाजत दी गई।

sHeader_Value = (System_Headers 
    .select(System_Headers.SystemHeader_Name, System_Data.System_Value) 
    .join(System_Header_Link) 
    .join(System_Data_Link) 
    .join(System_Data) 
    .naive()) 
+0

हाँ, यह काम किया:

नीचे काम कर कोड है। लेकिन जब मैं पंक्ति को क्रमबद्ध करता हूं तो यह 'System_Value' कुंजी – Rishabh

+0

नहीं जोड़ता है कोई भी जानता है कि बाएं आउटर जॉइन का उपयोग करते समय इस समस्या को कैसे प्राप्त किया जाए, यह अभी भी वही त्रुटि देता है। – bobthemac

संबंधित मुद्दे