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)