2012-11-25 11 views
7

का उपयोग कर एक एकाधिक फोन vCard बनाना vCbject बनाने के लिए vObject का उपयोग कर im। सब कुछ ठीक काम करता है सिवाय इसके कि मैं एकाधिक फोन नंबर नहीं जोड़ सकता।vObject

अभी मैं यह कर रहा हूँ:

v.add('tel') 
v.tel.type_param = 'WORK' 
v.tel.value = employee.office_phone 

v.add('tel') 
v.tel.type_param = 'FAX' 
v.tel.value = employee.fax 

यह एक महत्वपूर्ण मूल्य के रूप में काम कर रहा है के रूप में, काम फोन फैक्स नंबर द्वारा ओवरराइट है।

कोई विचार यह है कि इसे सही तरीके से कौन करना है?

धन्यवाद!

+0

हो सकता है कि 'v.tel' की जरूरत है एक सूची या एक तरह पहुँचा करने के लिए सरणी, जैसे 'v.tel [0] .type_param =' वर्क '। या हो सकता है कि 'v.add() 'एक ऑब्जेक्ट देता है, जो आपको टाइप_परैम और मान को असाइन करना चाहिए, जैसे' tel = v.add ('tel'); tel.type_param = 'वर्क' – Michael

उत्तर

10

add() विधि एक विशिष्ट वस्तु जो अधिक डेटा को भरने के लिए इस्तेमाल किया जा सकता रिटर्न:

import vobject 

j = vobject.vCard() 
o = j.add('fn') 
o.value = "Meiner Einer" 

o = j.add('n') 
o.value = vobject.vcard.Name(family='Einer', given='Meiner') 

o = j.add('tel') 
o.type_param = "cell" 
o.value = '+321 987 654321' 

o = j.add('tel') 
o.type_param = "work" 
o.value = '+01 88 77 66 55' 

o = j.add('tel') 
o.type_param = "home" 
o.value = '+49 181 99 00 00 00' 

print(j.serialize()) 

आउटपुट:

BEGIN:VCARD 
VERSION:3.0 
FN:Meiner Einer 
N:Einer;Meiner;;; 
TEL;TYPE=cell:+321 987 654321 
TEL;TYPE=work:+01 88 77 66 55 
TEL;TYPE=home:+49 181 99 00 00 00 
END:VCARD