2014-11-03 2 views
2

새로운이 과정이 작성하고, 단계를 추가 할 때, 나는 다음과 같은 클래스 모든ODOO 8 on_change

class TypeProcessus(models.Model): 
    _name = 'atom.promaintenance.type.processus' 
    name = fields.Char() 
    id_phases = fields.One2many('atom.promaintenance.phases','id_processus','Liste des Phases') 

class Phases(models.Model): 
    _name = 'atom.promaintenance.phases' 
    name = fields.Char() 
    autoriserCommentaire = fields.Boolean() 
    autoriserPiecesJointes = fields.Boolean() 
    id_processus = fields.Many2one('atom.promaintenance.type.processus') 
    parent_id = fields.Many2one('atom.promaintenance.phases','Phase Parent', select=True,  ondelete='cascade') 
    commentaire = fields.Text() 

    @api.one 
    @api.onchange('name') 
    def phases_write(self): 
     print 'test' 

<record model="ir.ui.view" id="atom_promaintenance_type_processus"> 
<field name="name">atom.promaintenance.type.processus.form</field> 
<field name="model">atom.promaintenance.type.processus</field> 
<field name="type">form</field> 
<field name="arch" type="xml"> 

     <form string="Type Processus" > 
      <sheet> 
      <h1>UPDATED</h1> 
       <field name="name" /> 
        <tree string="note_evaluation_tree" editable="bottom"> 
         <field name="id_phases" /> 
        </tree> 
      </sheet> 
     </form> 

</field> 
</record> 

먼저이 나는 새로운 odoo 8 API를 SOMES 문제에 직면하고 제발 내 문제가 존재하는 부모 부모를위한 드롭 다운 목록은 단계별로 부모 관계에있는 자녀를 제외하고는 비워 두어야합니다. 당신은 내가 당신을 이해하는 것을 의미하는 경우에 당신에게

+0

onchange 메소드를 사용하여 레코드를 저장할 수 없습니다. 나는 당신이 여기에서하고 싶은 것을 정말로 이해하지 못합니다. 레코드를 저장/생성하는 방법을 변경하려면 관련 레코드를 생성/업데이트해야하는 경우'create' 및/또는'write' 메소드를 무시하거나 메소드에서 호출해야합니다. – Andrius

+0

나는 문제를 찾을 수 없다. onChange()와 저장소 레코드 사이의 관계는 무엇인가? 그래서 당신은 실제로 무엇이 문제인지 말해줍니다. – Virbhadrasinh

답변

0

감사

i는 데이터베이스에 지속하는 단계에 OnChange 이벤트를 추가하는 데 성공하지만 난 새로운 API 시스템과 그 기록을 저장하는 방법을 알아낼 수 없습니다 그런데 XML 코드에서 위젯 one2many_list를 사용할 필요가 있습니다. 그런데 나는 잘못 생각합니다. 다음과 같은 형식이어야합니다 :

<record model="ir.ui.view" id="atom_promaintenance_type_processus"> 
    <field name="name">atom.promaintenance.type.processus.form</field> 
    <field name="model">atom.promaintenance.type.processus</field> 
    <field name="type">form</field> 
    <field name="arch" type="xml"> 
     <form string="Type Processus" > 
      <sheet> 
      <h1>UPDATED</h1> 
       <field name="name" /> 
       <field name="id_phases" widget="one2many_list"> 
        <tree string="note_evaluation_tree" editable="bottom"> 
         <field name="name"/> 
         <field name="autoriserCommentaire"/> 
         <field name="autoriserPiecesJointes"/> 
         <field name="parent_id"/> 
         <field name="commentaire"/> 
        </tree> 
       </field> 
      </sheet> 
     </form> 
    </field> 
</record> 

위젯을 사용하면 processus에 대한 단계를 추가하고 저장할 수 있습니다.

0

새 API는 모든 레코드 수정에 self을 사용합니다. 따라서 귀하의 경우에 name을 변경하려면 다음과 같이 작성하십시오.

@api.one 
@api.onchange('name') 
def onchange_name(self): 
    self.name = 'what you want to save' 
관련 문제