gpt4 book ai didi

python - OpenERP 7.0 中的 on_change 事件没有得到响应

转载 作者:太空宇宙 更新时间:2023-11-03 18:45:05 25 4
gpt4 key购买 nike

我是 OpenERP 新手,总体来说缺乏编程经验。我正在尝试从文本字段上的 onchange 事件获取任何响应。其他人报告该代码有效,并指出该字段必须失去焦点,因此这可能是我这边的操作系统/浏览器/服务器相关问题。

我尝试了许多变量组合,因为论坛、文档和帮助网站(例如 stackoverflow)上的建议各不相同。

查看:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record model="ir.ui.view" id="view_product_form_custom">
<field name="name">CRM - Leads Calendar.inherit</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.crm_case_form_view_leads" />
<field name="arch" type="xml">
<field name="partner_name" on_change="testchange(contact_name)" /> <!-- Note: position="replace" works, have tried partner_name, context and combinations here. -->
<!-- <field name="contact_name" /> -->
</field>
</record>
</data>
</openerp>

Controller :

from openerp.osv import fields, osv # import crm/leads/view as well?

class modcontroller(osv.osv):
"""Attempting to change contact_name onchange partner_name (Company Name).
"""
_inherit = "crm.lead"
_columns = {
'contact_name': fields.char('Contact Name', size=64, readonly=False),
'partner_name': fields.char("Customer Name", size=64, help='Got your nose!', select=1, readonly=False),
}
_defaults = {
}

def testchange(self, cr, uid, ids, contact_name): #partner_name, context=None
# return {'warning': {'title': 'test', 'message': 'hello world'}}
# raise Exception("Are you still there?")
return {'value': {'contact_name': 'testing'}}


modcontroller()

正如您所看到的,我尝试了引发异常和显示警告对话框,但都不起作用。它确实检测到语法错误。

操作系统:Windows 7 64位OpenERP 7.0 最新稳定版本,包括 postgresql。尝试过的浏览器:Chrome 和 Firefox。没有 NoScript。

作为旁注:我首先在 Ubuntu 12.04 VM 上尝试使用 OpenERP 每晚使用 OpenERP,但遇到了 100% CPU 负载问题,几乎卡住了操作系统(鼠标移动每秒 0.5 帧)。

相关页面摘录: Onchange function in Openerp https://www.openerp.com/files/memento/OpenERP_Technical_Memento_latest.pdf (参见第 6 页,动态 View ) http://forum.openerp.com/forum/topic34853.html

最佳答案

由于您要继承 View crm.crm_case_form_view_leads,因此您必须使用属性 position = Replace/after/before 指定必须继承 View 中的哪个字段。查看您的代码,我认为您正在尝试向 CRM 中的字段 partner_name 添加 on_change 事件。这可以通过以下方式实现:

<record model="ir.ui.view" id="view_product_form_custom">
<field name="name">CRM - Leads Calendar.inherit</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.crm_case_form_view_leads" />
<field name="arch" type="xml">
<xpath expr="//field[@name='partner_name']" position="attributes">
<attribute name="on_change">testchange(partner_name)</attribute>
</xpath>
</field>
</record>

由于字段 partner_namecontact_name 已存在于模型 crm.lead 中,因此您不必继承模型 再次 crm.lead 并添加这些字段。所以你可以省略

_columns = {
'contact_name': fields.char('Contact Name', size=64, readonly=False),
'partner_name': fields.char("Customer Name", size=64, help='Got your nose!', select=1, readonly=False),
}

Python 文件的一部分。

关于python - OpenERP 7.0 中的 on_change 事件没有得到响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19714555/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com