2016-05-15 9 views
8

में एक 2many फ़ील्ड के अंदर वृक्षदृश्य या सूचीदृश्य में बाइनरी फ़ील्ड डाउनलोड लिंक का उपयोग मैं ओडू 8 संस्करण का उपयोग कर रहा हूं।ओडू

मैं एक नया मॉडल enquiry_customer_date

कि मॉडल में कहा जाता है, मैं चार क्षेत्रों निम्नलिखित निर्धारित किया है बनाया है।

  • partner_id (many2one),
  • enquiry_date (तारीख),
  • file_name (चार) और
  • excel_file (बाइनरी)

मैं उल्लेख मॉडल दे दिया है रेस के साथ one2many संबंध .partner मॉडल

मैंने प्रदर्शन रिकॉर्ड के लिए कोड नीचे उपयोग किया है।

<field name="enquiry_from_customer_ids"> 
    <tree string="Enquiry Lines"> 
     <field name="enquiry_date"/> 
     <field name="file_name" invisible="1"/> 
     <field name="excel_file" filename="file_name"/> 
    </tree>  
</field> 

यह सूची दृश्य में सही फ़ाइल नाम प्रदर्शित करेगा।

चेहरा समस्या:

जब मैं लिंक डाउनलोड करें, उसका फ़ाइल नाम = .bin विस्तार के साथ बेस 64 के साथ संग्रहीत करता है।

प्रश्न:

कैसे डाउनलोड लिंक क्षेत्र one2many में विस्तार के साथ अपलोड की गई फ़ाइल नाम के समान काम कर पाने के लिए?

मैं @danidee जवाब के साथ की कोशिश की है अपडेट किया गया।

सिस्टम विन्यास पैरामीटर:

System configuration parameter

Treeview/सूची दृश्य one2many क्षेत्र

Treeview/Listview one2many field

उत्पादन:

enter image description here

अपेक्षित आउटपुट:

फ़ाइल "Openerp_Customization_Needed के साथ डाउनलोड की जानी चाहिए।txt "

उत्तर

1

डिफ़ॉल्ट फ़ाइलें और attachements तक बाइनरी फ़ाइलों के रूप में DB में जमा हो जाती है, लेकिन आप Settings/Parameters/System Parameters को ir_attachement.location पैरामीटर

गॉट की स्थापना करके उस व्यवहार को बदल सकते हैं, ir_attachment.location यह db परिवर्तन करने के लिए सेट किया जाना चाहिए के लिए देखो यह

file:///filestore

ध्यान दें कि मौजूदा संलग्नक और फ़ाइलों को अभी भी डेटाबेस में संग्रहीत किया जाएगा, लेकिन सभी नए लगाव या फ़ाइल को अपलोड किया संग्रहीत किया जाएगा करने के लिए फ़ाइल सिस्टम में, जो आपको फ़ाइल के मूल रूप में फ़ाइल डाउनलोड करने में सक्षम होना चाहिए जैसे कि आप

+0

धन्यवाद। मैंने अपने सर्वर में चेक किया है। जैसा कि आप वर्णन करते हैं मेरे पास मूल्य नहीं है। मैंने आपके सुझाव के अनुसार मैन्युअल रूप से बनाया है। और यह काम नहीं कर रहा है। फिर भी मुझे कुछ * बेस 64 * नाम * .bin * एक्सटेंशन के साथ मिल रहा है। –

+0

क्या आपने अपना सर्वर पथ (जहां odoo इंस्टॉल किया गया है) की जांच की है, अगर 'filestore' फ़ोल्डर उत्पन्न हुआ था? और आपने इसे फिर से परीक्षण करने के लिए एक नई फ़ाइल अपलोड की है ... क्योंकि मौजूदा व्यक्ति को स्वचालित रूप से उनके मूल रूप में परिवर्तित नहीं किया जाएगा। फ़ाइल 'Openerp_Customization_Needed.txt' के नाम के रूप में आप स्वचालित रूप से प्राप्त नहीं कर सकते हैं क्योंकि odoo अद्वितीय फ़ाइल नाम उत्पन्न करने के लिए 'SHA1' का उपयोग करता है ताकि डुप्लिकेट – danidee

+0

से बचने के लिए यह काम नहीं कर रहा है। क्या अजगर कोड का उपयोग करने की कोई और चाल है? आपके जवाब के लिए –

1

हां, आप फ़ाइल निर्यात कर सकते हैं जैसे कि आपने पेड़ दृश्य में सीधे बाइनरी फ़ील्ड नाम देने के बजाय पेड़ दृश्य में बटन जोड़कर अपलोड किया है । कृपया अपने उत्तर के लिए enquiry_customer_date मॉडल

@api.multi 
def export_file(self): 
    return { 
     'type' : 'ir.actions.act_url', 
     'url': '/web/binary/saveas?model=ir.attachment&field=datas&filename_field=self.file_name&id=%s' % (self.excel_file.id), 
     'target': 'self', 
     } 

में नीचे दिए गए कोड को जोड़ने के अपने xml फ़ाइल में निम्न कोड जोड़ें,

<field name="enquiry_from_customer_ids"> 
    <tree string="Enquiry Lines"> 
     <field name="enquiry_date"/> 
     <field name="file_name" invisible="1"/> 
     <field name="excel_file" filename="file_name"/> 
     <button name="export_file" string="Download" type="object" icon="gtk-ok" class="oe_highlight" /> 
    </tree>  
</field>  
+0

धन्यवाद @ निलीश। हां हम इसे नया बटन जोड़ने से कर सकते हैं। कृपया मेरा प्रश्न सावधानी से पढ़ें। यह * "डोनवलोड लिंक" * ओपन ir.attachment फॉर्म के बारे में। फ़ॉर्म व्यू में आप फ़ाइल को "डोनवलोड फ़ाइल_नाम" के रूप में देख सकते हैं * यदि आप उस पर क्लिक करते हैं, तो यह आपकी स्थानीय मशीन में सहेजा जाएगा। यह व्यवहार * वन 2many * फ़ील्ड के साथ समान नहीं है –

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