python - 属性错误: when trying to write in form xml

标签 python xml odoo attributeerror openerp-7

我正在尝试更新我的表单 View xml。这是我的代码:

def update_column(self,cr,uid,ids,context=None):
        for id in ids:
            temp=self.pool.get('deg.form').browse(cr,uid,id)
            fields={'myname':temp.name,'mytype':temp.data_type}

            self._columns.update(fields)
            print (self._columns)
        result = super(deg_form, self).create(cr,uid,{},context=None)    
        return result


def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
        res = super(deg_form,self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu)
        objn = self.pool.get('deg.form').browse(cr, uid, 145)
        if view_type=='form':
       str_fields=str(res['fields'])
       str_fields=str_fields[:len(str_fields)-1]+ ", 'father_name' :{'selectable': True, 'views': {},'type':'char', 'string': '"+objn.name+"', 'store': True,'size': 128}}"
       res['fields']=eval(str_fields)
              temp_arch="""<field name="father_name" />"""      
       fields_string=res['arch']
       index_of_end_group=fields_string.find('</group>')
       fields_string=fields_string[:index_of_end_group] + " " +temp_arch + " "+fields_string[index_of_end_group(inlove)
              res['arch']=fields_string
        return res

但我收到错误

AttributeError: 'unicode' object has no attribute '_type'

这是我的堆栈跟踪:

Server Traceback (most recent call last):
  File "/home/arsalan/openerp-7.0/openerp/addons/web/session.py", line 90, in send
    return openerp.netsvc.dispatch_rpc(service_name, method, args)
  File "/home/arsalan/openerp-7.0/openerp/netsvc.py", line 295, in dispatch_rpc
    result = ExportService.getService(service_name).dispatch(method, params)
  File "/home/arsalan/openerp-7.0/openerp/service/web_services.py", line 614, in dispatch
    res = fn(db, uid, *params)
  File "/home/arsalan/openerp-7.0/openerp/osv/osv.py", line 188, in execute_kw
    return self.execute(db, uid, obj, method, *args, **kw or {})
  File "/home/arsalan/openerp-7.0/openerp/osv/osv.py", line 131, in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/home/arsalan/openerp-7.0/openerp/osv/osv.py", line 198, in execute
    res = self.execute_cr(cr, uid, obj, method, *args, **kw)
  File "/home/arsalan/openerp-7.0/openerp/osv/osv.py", line 185, in execute_cr
    return getattr(object, method)(cr, uid, *args, **kw)
  File "/home/arsalan/openerp-7.0/openerp/addons/system/myform.py", line 131, in update_column
    result = super(deg_form, self).create(cr,uid,{},context=None)
  File "/home/arsalan/openerp-7.0/openerp/osv/orm.py", line 4372, in create
    bool_fields = [x for x in self._columns.keys() if self._columns[x]._type=='boolean']
AttributeError: 'unicode' object has no attribute '_type'

我已经尝试了两天,现在我没有任何想法。非常感谢任何帮助或解决方案指南。 谢谢

最佳答案

self._columns 之一是 unicode 对象。原因是您使用错误类型的数据更新 self._columns。它保留 {'field_name':openerp.osv.fields.date object} 但在这里:

temp=self.pool.get('deg.form').browse(cr,uid,id)
fields={'myname':temp.name,'mytype':temp.data_type}
self._columns.update(fields)

您使用奇怪的值更新_columns

关于python - 属性错误: when trying to write in form xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23215716/

相关文章:

python - Scrapy 可以和 Chrome 浏览器一起使用吗?

python - 如何只查看列表中所有列表中的第三个值

xml - 在 Eclipse 和 Maven 中管理 Spring 命名空间模式

Android:如何创建一个带有滚动标题的对话框?

python - Odoo 不显示 Markdown 图像

python - 有没有办法强制将数据导入 Odoo 9 或 10 中的只读字段?

python - 如何传递正则表达式重复的参数(python)

python - Django 表格 : disable field if booleanfield is checked

python - 如何混合pandas和beautifulsoup从xml文件目录中提取一些元素标签?

python - 如何从表单 View 中删除保存按钮