【问题标题】:how to fix 'object has no attribute ' error while developing openerp module?如何在开发 openerp 模块时修复“对象没有属性”错误?
【发布时间】:2013-07-10 13:29:54
【问题描述】:

您好,我一直在开发自定义 openerp 模块。我在我的字段中创建了一个按钮,并且我还为它声明了一个 acvtion。但我收到一个错误“'my_form' 对象没有属性 'add_field'”?

这里是 myform_view.xml

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

        <record model="ir.ui.view" id="from_view_form">
            <field name="name">form.view.form</field>
            <field name="model">my.form</field>
            <field name="arch" type="xml">
                <form string="Form" version="7.0">
                    <group>
                        <field name="name" />
                        <field name="project" />
                        <button name="add_field" string="Add Field" type="object" />
                    </group>
                </form>
            </field>
        </record>

        <record model="ir.ui.view" id="from_view_tree">
            <field name="name">form.view.tree</field>
            <field name="model">my.form</field>
            <field name="arch" type="xml">
                <tree string="Form">
                    <field name="name" />
                </tree>
            </field>
        </record>    

        <record model='ir.actions.act_window' id='add_field'>
            <field name="name">Form</field>
            <field name="res_model">my.form2</field>
            <field name="view_type">form</field>
            <field name="view_mode">form</field>
            <field name="context">{}</field>
            <field name="help" type="html">
                <p class="oe_view_nocontent_create">
                    Click to create a new record.
                </p>
                <p>This is a test class developed to learn Openerp.</p>
            </field>
        </record>













        <record model='ir.actions.act_window' id='form_view_action'>
            <field name="name">Form</field>
            <field name="res_model">my.form</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form</field>
            <field name="context">{}</field>
            <field name="help" type="html">
                <p class="oe_view_nocontent_create">
                    Click to create a new record.
                </p>
                <p>This is a test class developed to learn Openerp.</p>
            </field>
        </record>

        <menuitem id="myform_ID" name="myforms" />

        <menuitem id="myform_menu_ID" name="myform" parent="myform_ID"  />

        <menuitem id="myform_menu2_ID" name="myform" parent="myform_menu_ID"  action='form_view_action' />

    </data>
</openerp>

这里是 myform.py

from osv import fields, osv
import time


class my_form(osv.osv):

    _name = "my.form"
    _description = 'Formview Module'
    _columns = {
        'name': fields.char('Name', size=64),
        'project': fields.char('Project', size=64),
        'image': fields.binary('Image'),
        'file':fields.binary('attach file')
    }



class my_form2(osv.osv):

    _name="my.form2"
    _description="new form"
    _columns={
              'add':fields.char('Address',size=64)
              }

【问题讨论】:

  • 嗨,在这里提供整个异常跟踪。我看不到错误属于哪里
  • 我已经提到了上面的错误。单击按钮时发生错误
  • 这是您第一次提问!提供整个堆栈跟踪,你给我们的是“'my_form'对象没有属性'add_field'”。但在哪一行?

标签: python eclipse openerp


【解决方案1】:

您的对象中必须有 add_field 方法,例如 IE 类 my_form(osv.osv):

    _name = "my.form"
    _description = 'Formview Module'
    _columns = {
        'name': fields.char('Name', size=64),
        'project': fields.char('Project', size=64),
        'image': fields.binary('Image'),
        'file':fields.binary('attach file')
    }

    def add_field(self, cr, uid, ids, context={}):
        #YOUR CODE
        return True
`

【讨论】:

  • 我可以在按钮单击时调用记录操作窗口。如果是,那我该怎么做?
  • 有两种调用动作的方式。 1. 如果在 XML 文件中创建 Action,只需执行 2. 调用普通函数并返回 { } 带有适当的动作参数。您可以在 addons/stock/stock.py 第 1544 行“action_partial_move”函数中找到示例
  • 这里是次要的挑剔,但你不应该编码 def add_field(..., context = {}): 或者你可能会遇到默认参数值。请记住,默认值仅在处理 def 时评估一次。您应该默认为不可变值: def add_field(..., context = None):
  • 我有 xml 错误,我不理解错误。请帮助
  • @RuchirShukla 我仍然有 xml 错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多