나는 odoo에 대한 새로운 프로그래머이며 내 검색에서 내 문제에 대한 답을 찾지 못했습니다.xml 필드에서 텍스트 가져 오기 및 설정
name 필드의 기본 폴더에서 res_partner_view 확장자를 사용하고 있습니다. 내가 원하는 것은 부가 가치세가 없거나 일반으로 정의 된 사용자가있는 경우 파트너 이름을 변경할 수 없다는 것입니다 (999999990). 사용자가 이름을 변경할 수 없다는 인상을 할 때 그는 변경하려고하기 전에 필드에 원래 이름을 넣고 싶습니다.
은 내 모듈의 onchange를 기능이 있습니다def onchange_partner_name(self, cr, uid, ids, n, context=None):
#raise osv.except_osv(_('Alterar nome'), _('Função onchange_partner_name'))
result = {}
cr.execute("Select res_partner.vat, res_partner.name, account_invoice.state from account_invoice inner join res_partner on account_invoice.partner_id = res_partner.id where res_partner.id = '%s'" % ids[0])
registos = cr.fetchall()
if (len(registos) > 0):
partner_nif = list(set(i[0] for i in registos))
if partner_nif[-1] == None or str(partner_nif[-1]) == '999999990':
for vat,nam,estado in registos:
if estado == 'open' or estado == 'paid':
raise osv.except_osv(_('Cliente com documentos emitidos'), _(content + 'Não pode alterar o Nome de um cliente sem NIF.'))
result['name'] = n
return {'value': result}
을 그리고 내 XML은 다음과 같습니다
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_partner_form_Name" model="ir.ui.view">
<field name="name">res.partner.form2</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field eval="1" name="priority"/>
<field name="arch" type="xml">
<field name="name" default_focus="1" placeholder="Name" position="replace">
<field name="name" default_focus="1" placeholder="Name" on_change="onchange_partner_name(name)"/>
</field>
</field>
</record>
</data>
</openerp>
그래서 내가 원하는, 또는 필드 "이름"에서의 변경하기 전에 이름을 저장 xml 및 raise 이전에 다시 변경하거나 raise 전에 테이블에있는 이름을 넣습니다.
xml의 필드 이름에있는 contend (문자열)을 가져오고 설정하는 방법이 있습니까? 사전에
감사