我有两个表module_level和module_category:
class module_categories(osv.osv):
_name ='module.category'
_description ="Module Category"
_columns = {
'mod_cat_id':fields.integer('id'),
'name':fields.char('Category', size=20),
'module_levels':fields.one2many('module.level', 'mod_level_id', 'Level', select=True, required=True),
}
module_categories()
class module_level(osv.osv):
_name ='module.level'
_description ="Module Level"
_columns = {
'mod_level_id': fields.many2one('module.category', 'ID', ondelete='cascade', help='Module Category', select=True, readonly=1),
'name':fields.char('Enter Levels', size=20),
}
module_level()和XML:
<record id="category_form" model="ir.ui.view">
<field name="name">Module Category</field>
<field name="model">module.category</field>
<field name="arch" type="xml">
<form string="Module Category" version="7.0" >
<sheet>
<group col="9">
<field name = "name"/>
</group>
<group col="2">
<field name='module_levels' nolabel='1' >
<tree string="Module Level" editable="bottom" class="grey_border">
<field name = "name" placeholder="Enter Levels"/>
</tree>
</field>
</group>
</sheet>
</form>
</field>
</record>这两个表表明,在module_category中,我们在树视图中创建了number if module_level。
例如:在module_category中有3个module_level。
现在我的问题是:我在不同的表中调用这两个字段。
.py:
'module_category': fields.many2one('module.category', 'Category', ondelete='cascade', help='Category', select=True),
'module_level': fields.many2one('module.level', 'Level', ondelete='cascade', help='Level', select=True),.xml:
<div class="col-3">
<label for="module_category" />
<field name="module_category" widget="selection/" readonly="context.get('ctx', False)"/>
</div>
<div class="col-3">
<label for="module_level" />
<field name="module_level" domain="[('module_category','=',module_category)]" options="{'create': False, 'create_edit': False}" readonly="context.get('ctx', False)"/>
</div>当我选择module_category时,它应该显示属于它的特定module_level。它不应显示module_level表中存在的所有module_level。
我在module_level中写了域名:domain="[('module_category','=',module_category)]"
当我点击module_level时,我得到了这个错误:ValueError: Invalid field u'module_category' in leaf "<osv.ExtendedLeaf: (u'module_category', u'=', False) on module_level (ctx: )>"。
如何获取?它应该显示属于module_category的特定module_level?
希望你能理解这个问题!
发布于 2015-12-21 18:24:31
问题已解决:.py文件中存在错误:
class module_categories(osv.osv):
_name ='module.categories'
_description ="Module Category"
_columns = {
'mod_cat_id':fields.integer('id'),
'name':fields.char('Category', size=20),
'module_levels':fields.one2many('module.levels', 'module_category', 'Level', select=True, required=True),
}
module_categories()
class module_level(osv.osv):
_name ='module.levels'
_description ="Module Level"
_columns = {
'module_category': fields.many2one('module.categories', 'ID', ondelete='cascade', help='Module Category', select=True, readonly=1),
'name':fields.char('Enter Levels', size=20),
}
module_level()我在module_category字段中犯了错误。
https://stackoverflow.com/questions/34392593
复制相似问题