So there's a Brand thing from our theme which is a model called as.product.brand. It has a Logo field, for, well, logo, and it's a binary field. We are trying to import the logos dynamically. I have prepared the below codes to loop over files and then figure out the Brand of the file and then update it. It works great when we're working with one file. But whenever I try this with multiple files I get this error: ValueError: Expected singleton: as.product.brand(9, 10, 8). 9, 10, 8 here are the brand IDs that were found. I am not sure how to resolve this, I am not even sure why its giving this error. I have added the full error and code below.
for ff in os.listdir(d):
ff_path = d +'/'+ ff
images =False
with open(ff_path, "rb") as image_file:
bytes= image_file.read()
images = base64.b64encode(bytes)
image_name = os.path.splitext(ff)[0]
if(image_name.startswith("Logo")):
prefix ="Logo_"
suffix ="_" # Assumes there is always an underscore after the prefix
prefix_end = image_name.index(prefix) +len(prefix)
suffix_start = image_name.index(suffix, prefix_end)
image_name = image_name[prefix_end:suffix_start]
domain = self.get_domain(image_name) # Returns [('name','=ilike',name)]
brands = brand_pool.search(domain, limit=1) # brand_pool = self.env['as.product.brand']
if not brands:
note = note +'\n'+str(ff)
else:
note = note +'\n'+str(brands)
for brand in brands:
brand.logo = images
Error Message:
Traceback (most recent call last): File "C:\Program Files\Odoo\server\odoo\models.py", line 5108, in ensure_one _id, = self._ids ValueError: too many values to unpack (expected 1) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Program Files\Odoo\server\odoo\http.py", line 1584, in _serve_db return service_model.retrying(self._serve_ir_http, self.env) File "C:\Program Files\Odoo\server\odoo\service\model.py", line 134, in retrying result = func() File "C:\Program Files\Odoo\server\odoo\http.py", line 1613, in _serve_ir_http response = self.dispatcher.dispatch(rule.endpoint, args) File "C:\Program Files\Odoo\server\odoo\http.py", line 1810, in dispatch result = self.request.registry['ir.http']._dispatch(endpoint) File "C:\Program Files\Odoo\server\odoo\addons\website\models\ir_http.py", line 235, in _dispatch response = super()._dispatch(endpoint) File "C:\Program Files\Odoo\server\odoo\addons\base\models\ir_http.py", line 149, in _dispatch result = endpoint(**request.params) File "C:\Program Files\Odoo\server\odoo\http.py", line 699, in route_wrapper result = endpoint(self, *args, **params_ok) File "C:\Program Files\Odoo\server\odoo\addons\web\controllers\dataset.py", line 46, in call_button action = self._call_kw(model, method, args, kwargs) File "C:\Program Files\Odoo\server\odoo\addons\web\controllers\dataset.py", line 33, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "C:\Program Files\Odoo\server\odoo\api.py", line 462, in call_kw model.env.flush_all() File "C:\Program Files\Odoo\server\odoo\api.py", line 732, in flush_all self._recompute_all() File "C:\Program Files\Odoo\server\odoo\api.py", line 728, in _recompute_all self[field.model_name]._recompute_field(field) File "C:\Program Files\Odoo\server\odoo\models.py", line 6152, in _recompute_field field.recompute(records) File "C:\Program Files\Odoo\server\odoo\fields.py", line 1325, in recompute self.compute_value(recs) File "C:\Program Files\Odoo\server\odoo\fields.py", line 1347, in compute_value records._compute_field_value(self) File "C:\Program Files\Odoo\server\odoo\models.py", line 4186, in _compute_field_value getattr(self, field.compute)() File "c:\program files\odoo\server\addons\atharva_theme_base\models\brands.py", line 26, in _get_logo self.image_1920 = self.logo File "C:\Program Files\Odoo\server\odoo\fields.py", line 1132, in __get__ record.ensure_one() File "C:\Program Files\Odoo\server\odoo\models.py", line 5111, in ensure_one raise ValueError("Expected singleton: %s" % self) ValueError: Expected singleton: as.product.brand(9, 10, 8) The above server error caused the following client error: RPC_ERROR: Odoo Server Error at makeErrorFromResponse (http://localhost:8069/web/assets/2204-495f151/web.assets_backend.min.js:967:163) at XMLHttpRequest. (http://localhost:8069/web/assets/2204-495f151/web.assets_backend.min.js:975:13)