Skip to Content
Menu
This question has been flagged
2077 Views

I have two tables module_level and 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()

And 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>

This two tables are saying that inside module_category we are creating number if module_level in tree view.

So for Example: in module_category there are 3 module_level.

Now my question is: i am calling this two fields in separate table.

.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>

When i select module_category it should show particular module_level which are belongs to it. It should not show all the module_level which are present in module_level table.

I wrote domain in module_level:domain="[('module_category','=',module_category)]"

I am getting this error: ValueError: Invalid field u'module_category' in leaf "<osv.ExtendedLeaf: (u'module_category', u'=', False) on module_level (ctx: )>" When i click on module_level.

How to get? It should show particular module_level which are belongs to module_category?

Hope you understood the prob!!

Avatar
Discard