2012-01-05 10 views

उत्तर

10

format तर्क का उपयोग यह निर्धारित करने के लिए किया जाता है कि 'व्यक्ति' तालिका का संदर्भ देने वाले अन्य तालिकाओं में फ़ील्ड कैसे प्रदर्शित किए जाएंगे। उदाहरण के लिए, यदि आप निर्धारित करें:

db.define_table('dog', 
    Field('name'), 
    Field('owner', db.person) 

'मालिक' फ़ील्ड एक संदर्भ क्षेत्र का संदर्भ देता है 'व्यक्ति' तालिका (यानी, वह 'व्यक्ति' तालिका से संग्रहीत करता रिकॉर्ड आईडी अभिलेखों की है) है। ज्यादातर मामलों में, जब आप 'कुत्ते' तालिका से डेटा प्रदर्शित करते हैं, तो आप कच्चे db.person रिकॉर्ड आईडी को प्रदर्शित नहीं करना चाहते हैं जो 'स्वामी' फ़ील्ड में संग्रहीत है क्योंकि इसका कोई अर्थ नहीं है - इसके बजाए, यह व्यक्ति के 'नाम' को प्रदर्शित करने के लिए और अधिक समझ में आता है। वेब 2py में, तालिका का format विशेषता इस स्वचालित प्रतिस्थापन को दोनों रूपों और तालिकाओं में सक्षम बनाता है।

जब आप 'कुत्ते' तालिका के आधार पर SQLFORM बनाते हैं, तो यह स्वचालित रूप से 'स्वामी' फ़ील्ड के लिए एक ड्रॉप-डाउन सूची उत्पन्न करेगा, और 'व्यक्ति' तालिका परिभाषा के लिए format='%(name)s' तर्क के कारण, ड्रॉप- नीचे सूची रिकॉर्ड आईडी के बजाय db.person नाम प्रदर्शित करेगी (भले ही फॉर्म सबमिशन पर, 'स्वामी' फ़ील्ड नाम के बजाय संबंधित रिकॉर्ड आईडी संग्रहीत करेगी)।

इसके अलावा, यदि आप SQLTABLE या SQLFORM.grid में 'कुत्ते' तालिका से रिकॉर्ड प्रदर्शित करते हैं, तो 'स्वामी' फ़ील्ड स्वामी के रिकॉर्ड आईडी के बजाय मालिक का नाम दिखाएगा।

http://web2py.com/books/default/chapter/29/6#Record-representation देखें।

+0

धन्यवाद। जो मुझे समझ में नहीं आता है वह तर्क है कि यह प्रतीक **% ** और ** ** ** तर्क के अंत में – Jensen

+0

यह मानक है [पायथन स्ट्रिंग स्वरूपण नोटेशन] (http://docs.python.org /library/stdtypes.html#string-formatting-operations)। 'प्रारूप' स्ट्रिंग में तालिका के भीतर किसी भी फ़ील्ड के नाम शामिल हो सकते हैं। – Anthony

+0

बहुत बहुत धन्यवाद। – Jensen

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