2009-11-30 16 views

उत्तर

14

यह नहीं है। यदि आप __unicode__() विधि को परिभाषित करते हैं, तो Django इसे कॉल करेगा जब उसे उस संदर्भ में किसी ऑब्जेक्ट को प्रस्तुत करने की आवश्यकता होती है जहां एक स्ट्रिंग प्रस्तुति की आवश्यकता होती है (उदाहरण के लिए मॉडल के व्यवस्थापक पृष्ठों में)।

documentation का कहना है:

__unicode__() विधि कहा जाता है जब भी आप किसी वस्तु पर unicode() कहते हैं। चूंकि Django के डेटाबेस बैकएंड आपके मॉडल के गुणों में यूनिकोड स्ट्रिंग्स लौटाएंगे, तो आप सामान्य रूप से __unicode__() अपने मॉडल के लिए विधि लिखना चाहते हैं।

+0

हाँ धन्यवाद, मैं अजगर और वाक्यविन्यास के बारे में परिचित हूं लेकिन मैं निश्चित रूप से django के लिए नया हूं .. क्या कोई अन्य उपयोगी लिंक है सामान्य django ट्यूटोरियल..इसलिए कृपया मुझे मार्गदर्शन करें ........ मुझे यह पता चला कि यह क्या है ... सभी उत्तरों के लिए धन्यवाद ........ – Hulk

+2

+ 1: प्रलेखन उद्धरण –

+0

@ हल्क: Django दस्तावेज़ीकरण में क्या गलत है? उत्कृष्ट है। कुछ बेहतरीन है। समस्या क्या है? –

6

मैं Django के लिए थोड़ा नया हूं, लेकिन मुझे लगता है कि मैं आपकी मदद कर सकता हूं।

सबसे पहले, यह बिल्कुल आवश्यक नहीं है, लेकिन यह वास्तव में एक अच्छा विचार है। क्षेत्र का उपयोग Django व्यवस्थापक में आपकी ऑब्जेक्ट्स के प्रस्तुतियां बनाने के लिए किया जाता है (अन्यथा उनके सभी का एक ही नाम होता है :- पी) और जब आप अपनी टर्मिनल विंडो पर ऑब्जेक्ट प्रिंट करते हैं तो यह देखने के लिए कि क्या हो रहा है (अन्यथा आप सामान्य रूप से बेकार हो जाते हैं संदेश)।

दूसरा, जो आपने लिखा था, ऐसा लगता है कि आप पाइथन के लिए नए हैं। मैं कक्षा वाक्यविन्यास पर कुछ पायथन ट्यूटोरियल पढ़ने की सलाह देते हैं। इसके अलावा, इस भाषा में अर्धविराम आवश्यक नहीं हैं। यूनिकोड विधि बनाने के लिए सही सिंटैक्स है:

class Foo(models.Model): 
    # Model fields go here 

    def __unicode__(self): 
     return u"%i" % self.sumid 

__unicode__ विधि डबल अंडरस्कोर है, क्योंकि यह एक विशेष समारोह है, अर्थात् जब builtin समारोह unicode(obj) उस पर कहा जाता है, यह उस वस्तु का एक यूनिकोड स्ट्रिंग प्रतिनिधित्व रिटर्न (जावा की की तरह)।

मुझे आशा है कि इस मदद करता है :-)

+0

हाँ धन्यवाद, , मैं अजगर और वाक्यविन्यास के बारे में परिचित हूं लेकिन मैं निश्चित रूप से django के लिए नया हूँ .. क्या सामान्य django ट्यूटोरियल की तुलना में कोई अन्य उपयोगी लिंक है .. तो कृपया मुझे इसके लिए मार्गदर्शन करें ........ मुझे एक विचार आया यह है ... सभी उत्तरों के लिए धन्यवाद ........ – Hulk

+0

मेरी इच्छा है कि मैं आपको कुछ अन्य स्रोतों पर इंगित कर सकता हूं, लेकिन जब तक मैं त्रुटि संदेश और ऐसे Google को याद करता हूं तब तक मुझे यादृच्छिक ब्लॉग मिलते हैं। मुझे लगता है कि प्रलेखन आमतौर पर बहुत अच्छा होता है, आपको बस कुछ चीजें करने के लिए सही तरीके से तैयार की गई समस्या में भाग लेना पड़ता है। – SapphireSun

+1

'sumid' अपरिभाषित प्रतीत होता है। शायद आप इसे 'self.sumid' में बदलना चाहते हैं? – nosklo

3

मुझे लगता है कि दूसरों को कुछ विस्तृत व्याख्या है कि आप के लिए पर्याप्त से अधिक होना चाहिए दे दिया है। लेकिन यहां एक सीधा जवाब है: __unicode__() जावा में toString() के बराबर है (और कई अन्य भाषाओं)

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