2017-10-23 16 views
0

제품 템플릿 양식의 마법사가 있고 단일 제품의 마법사에 여러 이미지를 저장하려고합니다. 마법사에서 확인 버튼을 클릭하면 선택한 이미지가 사라집니다. 여기 내 코드는 다음과 같습니다 -odoo10의 마법사에서 이미지를 저장할 수 없습니다.

image.py 코드 : -

from openerp import api, fields, models, _ 
from openerp import SUPERUSER_ID 
from openerp.exceptions import UserError 
import openerp.addons.decimal_precision as dp 

class image_wizard(models.TransientModel): 
    _name = "image.wizard" 

    image_med = fields.Many2many('ir.attachment', string="Attachments") 
    image = fields.Binary("Image") 





    @api.multi 
    def action_image_add(self, context=None): 
      rec = self._context.get('active_ids', []) 
      if rec: 
       line_values = {'image_medium':self.image_med 
         } 
       product = self.create['product.template'].write(line_values) 

image.xml 코드 : -

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
    <data> 
     <record id="view_image_wizard" model="ir.ui.view"> 
      <field name="name">Image wizard</field> 
      <field name="model">image.wizard</field> 
      <field name="arch" type="xml"> 
       <form string="Sales Pack"> 
        <group colspan="4" col="4"> 
         <group colspan="4" col="4"> 
          <field name="image_med" widget="many2many_binary" class="thumbimage"/> 
          <field name="image" invisible="1"/> 

         </group> 
        </group> 
        <footer> 
         <button name="action_image_add" string="Ok" type="object" 
           class="btn-primary"/> 
         <button string="Cancel" class="btn-default" special="cancel"/> 
        </footer> 
       </form> 
      </field> 
     </record> 

     <record id="action_view_image_wizard" model="ir.actions.act_window"> 
      <field name="name">Image wizard</field> 
      <field name="type">ir.actions.act_window</field> 
      <field name="res_model">image.wizard</field> 
      <field name="view_type">form</field> 
      <field name="view_mode">form</field> 
      <field name="view_id" ref="view_image_wizard"/> 
      <field name="target">new</field> 
     </record> 

    </data> 
</openerp> 

product.py 코드 : -

from openerp import api, fields, models, _ 
from openerp import SUPERUSER_ID 
from openerp.exceptions import UserError 
import openerp.addons.decimal_precision as dp 

class ProductImage(models.Model): 
    _inherit ="product.template" 

있는 product.xml 코드 : -

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
    <data> 

     <record id="product_image_form" model="ir.ui.view"> 
      <field name="name">product.image.form</field> 
      <field name="model">product.template</field> 
      <field name="inherit_id" ref="product.product_template_form_view"/> 
      <field name="arch" type="xml"> 

       <xpath expr="//field[@name='image_medium']" position="before"> 
        <button name="%(action_view_image_wizard)d" string="see all images" type="action"/> 
       </xpath> 
      </field> 
     </record> 
    </data> 
</openerp> 

그래서 마법사에서 여러 이미지를 저장하고 우리가 확인 버튼을 클릭하면 다음 이미지가 사라질 마법사의 저장된 이미지를 참조하는 방법에 대해 설명합니다. 내 코드에 오류가 있습니까? 누구든지 제안 할 수 있습니까?

답변

1

마법사 레코드는 영구적 인 것이 아닙니다. 그들은 특정 시간 후에 데이터베이스에서 자동으로 삭제됩니다. 이것이 과도기라고 불리는 이유입니다. : doc odoo

+0

를 표시/마법사 이미지를 저장하는 어떤 대안이 있는가? –

+0

컨텍스트를 사용할 수 있습니다. –

+0

본 기술을 처음 접했습니다. 위의 조건과 코드에서 컨텍스트를 사용하는 방법을 제안 할 수 있습니까? –

0

당신은 버튼을 추가 할 필요가 : 우리가 설정 한 기본값은 마법사 필요가 이후

<button string="Open wizard" 
     name="%(my_module.action_open_wizard)d" 
     type="action" 
     class="btn-link" 
     context="{'image_med': image_med}"/> 

을 :

<record id="action_open_wizard" model="ir.actions.act_window"> 
    <field name="name">action name</field> 
    <field name="res_model">my_model_two</field> 
    <field name="view_id" ref="model_two_form_wizard"/> 
    <field name="context">{'default_image_med': context.get('image_med', False),}</field> 
    <field name="target">new</field> 
</record