This question has been flagged
2 Replies
3818 Views

Hello All,

I try to applied domain for many2one type field. But i find following Error:

TypeError: district.district(11,) is not JSON serializable

My Onchange function code is here:

@api.onchange('district_table_case')

    def _onchange_district_table(self):

        print "A:", self.district_table_case.district_mainn

        print "B:", self.district_table_case.district_ss

        #print "C:", self.district_table_case.district_ss.district

        rec = self.district_table_case.district_ss

        res = self.district_table_case.district_mainn

        print "res:", res

        for vals in rec:

            print "C:", vals

            print "D:", vals.district

            if vals.district:

                return {'domain': {'district_table': [('id', 'in', vals)]}}

            else:

                return {'domain': {'district_table': []}}


district_table_case = fields.Many2one('district.districe.code', change_default=True, default=_onchange_district_table)

Avatar
Discard
Best Answer

Instead of browsable record make them vals in [1,2,3,4]
Now your code evaluates like vals in [district.district(11,), district.district(12,), district.district(13,)]
so make the vals as vals = [v.id for v in vals]

so you should  return {'domain': {'district_table': [('id', 'in', [v.id for v in vals])]}}

Avatar
Discard
Author

Hello Hilar,

I have a problem related to return value. Here is the link for problem.

https://www.odoo.com/forum/help-1/question/how-to-add-multiple-fields-values-in-single-many2many-field-in-odoov10-125028

Thanks in advance.

Author Best Answer

Hello Hilar,

My domain code work well for English Language. But, When i select Chinese Language then it shows error.

Here i attach screenshot of Error:

Avatar
Discard

try to print the chinese words by typecasting to unicode,

Author

Sorry, How i do this? any suggestions?