Q:

Odoo 10 - Search condition

I am trying to search based on the following condition:
.search([("product_id", "=", int(product_id)), ("language", "=", language), ['|', ("type", "=", "data"), ("type", "=", "translation")], ])

Which basically searchs in a given model (it is a custom one) for:

a given product_id AND
a given language AND
type column being either "data" OR "translation"

But I get:
File "/usr/lib/python2.ion = distribute_not(normalize_domain(domain))\n  
File "/usr/lib/python2.7/dist-packages/odoo/osv/ex
GATION:\nTypeError: unhashable type: \'list\'\n'>

Is the search condition properly defined?

A:

The way you have defined the search condition is incorrect.
Try this instead
.search(['|', ("type", "=", "data"), ("type", "=", "translation"), ("product_id", "=", int(product_id)), ("language", "=", language)])

