Itgenodo101 - tabell product.product - fil kunde inte avkodas som en bildfil

Försöker jag ladda data från Odoo-tabellen odoo.product.product får jag ständigt felet:

itgenodo101
Den här filen kunde inte avkodas som en bildfil.
(odoo.exceptions.useError).

image

Jag har försökt arbeta runt denna tabell, men den är viktigare än väntat.

Någon som har lösningen?

De melding is op te wekken via:

select *
from   odoo.product.product

met een API-call op https://acme-testing.odoo.com/jsonrpc:

{
  "id": 35,
  "jsonrpc": "2.0",
  "method": "call",
  "params": {
    "service": "object",
    "method": "execute_kw",
    "args": [
      "acme-16-0-testing-21794090",
      205,
      "secretpassword",
      "product.product",
      "search_read",
      [],
      {
        "limit": 500,
        "offset": 500,
        "context": {
          "lang": "nl_NL"
        }
      }
    ]
  }
}

waar de Odoo API-server op antwoordt met een foutmelding:

{
  "jsonrpc": "2.0",
  "id": 35,
  "error": {
    "code": 200,
    "message": "Odoo Server Error",
    "data": {
      "name": "odoo.exceptions.UserError",
      "debug": "Traceback (most recent call last):\n  File \"/home/odoo/src/odoo/odoo/api.py\", line 1013, in get\n    cache_value = field_cache[record._ids[0]]\nKeyError: 979\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/home/odoo/src/odoo/odoo/fields.py\", line 1161, in __get__\n    value = env.cache.get(record, self)\n  File \"/home/odoo/src/odoo/odoo/api.py\", line 1020, in get\n    raise CacheMiss(record, field)\nodoo.exceptions.CacheMiss: 'product.product(979,).image_1920'\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/home/odoo/src/odoo/odoo/tools/image.py\", line 81, in __init__\n    self.image = Image.open(io.BytesIO(source))\n  File \"/usr/lib/python3/dist-packages/PIL/Image.py\", line 3008, in open\n    raise UnidentifiedImageError(\nPIL.UnidentifiedImageError: cannot identify image file <_io.BytesIO object at 0x7b4afa20ad40>\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/home/odoo/src/odoo/odoo/http.py\", line 1824, in _serve_db\n    return service_model.retrying(self._serve_ir_http, self.env)\n  File \"/home/odoo/src/odoo/odoo/service/model.py\", line 152, in retrying\n    result = func()\n  File \"/home/odoo/src/odoo/odoo/http.py\", line 1852, in _serve_ir_http\n    response = self.dispatcher.dispatch(rule.endpoint, args)\n  File \"/home/odoo/src/odoo/odoo/http.py\", line 2056, in dispatch\n    result = self.request.registry['ir.http']._dispatch(endpoint)\n  File \"/home/odoo/src/odoo/odoo/addons/base/models/ir_http.py\", line 154, in _dispatch\n    result = endpoint(**request.params)\n  File \"/home/odoo/src/odoo/odoo/http.py\", line 763, in route_wrapper\n    result = endpoint(self, *args, **params_ok)\n  File \"/home/odoo/src/odoo/odoo/addons/base/controllers/rpc.py\", line 163, in jsonrpc\n    return dispatch_rpc(service, method, args)\n  File \"/home/odoo/src/odoo/odoo/http.py\", line 385, in dispatch_rpc\n    return dispatch(method, params)\n  File \"/home/odoo/src/odoo/odoo/service/model.py\", line 56, in dispatch\n    res = execute_kw(db, uid, *params[3:])\n  File \"/home/odoo/src/odoo/odoo/service/model.py\", line 79, in execute_kw\n    return execute(db, uid, obj, method, *args, **kw or {})\n  File \"/home/odoo/src/odoo/odoo/service/model.py\", line 84, in execute\n    res = execute_cr(cr, uid, obj, method, *args, **kw)\n  File \"/home/odoo/src/odoo/odoo/service/model.py\", line 70, in execute_cr\n    result = retrying(partial(odoo.api.call_kw, recs, method, args, kw), env)\n  File \"/home/odoo/src/odoo/odoo/service/model.py\", line 152, in retrying\n    result = func()\n  File \"/home/odoo/src/odoo/odoo/api.py\", line 480, in call_kw\n    result = _call_kw_model(method, model, args, kwargs)\n  File \"/home/odoo/src/odoo/odoo/api.py\", line 451, in _call_kw_model\n    result = method(recs, *args, **kwargs)\n  File \"/home/odoo/src/odoo/odoo/models.py\", line 5074, in search_read\n    result = records.read(fields, **read_kwargs)\n  File \"/home/odoo/src/odoo/odoo/models.py\", line 3038, in read\n    return self._read_format(fnames=fields, load=load)\n  File \"/home/odoo/src/odoo/odoo/models.py\", line 3219, in _read_format\n    vals[name] = convert(record[name], record, use_name_get)\n  File \"/home/odoo/src/odoo/odoo/models.py\", line 6007, in __getitem__\n    return self._fields[key].__get__(self, self.env.registry[self._name])\n  File \"/home/odoo/src/odoo/odoo/fields.py\", line 1222, in __get__\n    self.compute_value(recs)\n  File \"/home/odoo/src/odoo/odoo/fields.py\", line 2378, in compute_value\n    super().compute_value(records)\n  File \"/home/odoo/src/odoo/odoo/fields.py\", line 1404, in compute_value\n    records._compute_field_value(self)\n  File \"/home/odoo/src/odoo/addons/mail/models/mail_thread.py\", line 403, in _compute_field_value\n    return super()._compute_field_value(field)\n  File \"/home/odoo/src/odoo/odoo/models.py\", line 4276, in _compute_field_value\n    fields.determine(field.compute, self)\n  File \"/home/odoo/src/odoo/odoo/fields.py\", line 98, in determine\n    return needle(*args)\n  File \"/home/odoo/src/odoo/addons/product/models/product_product.py\", line 128, in _compute_image_1920\n    record.image_1920 = record.image_variant_1920 or record.product_tmpl_id.image_1920\n  File \"/home/odoo/src/odoo/odoo/fields.py\", line 1317, in __set__\n    self.write(protected_records, value)\n  File \"/home/odoo/src/odoo/odoo/fields.py\", line 2502, in write\n    new_value = self._image_process(value)\n  File \"/home/odoo/src/odoo/odoo/fields.py\", line 2526, in _image_process\n    return base64.b64encode(image_process(img,\n  File \"/home/odoo/src/odoo/odoo/tools/image.py\", line 267, in image_process\n    image = ImageProcess(source, verify_resolution)\n  File \"/home/odoo/src/odoo/odoo/tools/image.py\", line 83, in __init__\n    raise UserError(_(\"This file could not be decoded as an image file.\"))\nodoo.exceptions.UserError: This file could not be decoded as an image file.\n",
      "message": "This file could not be decoded as an image file.",
      "arguments": [
        "This file could not be decoded as an image file."
      ],
      "context": {}
    }
  }
}

Deze specifieke melding zal vanaf release 25.0 omgezet worden in itgenodo159 voor snellere herkenning.

Dit betreft een bug in Odoo zelf, hetzij in de software, hetzij in de configuratie.

Advies is om zowel de getoonde JSON-call als het JSON-antwoord op te sturen naar Odoo en hun te vragen hierbij van assistentie te zijn. Mogelijkerwijs heeft een product een in Odoo gekoppelde afbeelding die corrupt is, maar de uiteindelijke beoordeling hiervan ligt bij Odoo.

Tack för den snabba feedbacken. Vi har nu kunnat lösa det. Jag vill gärna dela med mig av vad lösningen var i mitt fall.

Vissa produkter visade alt-texten i översikten istället för bilden:

image

Detta rättades till, och sedan kollade vi i steg om 200 vilken rad som fortfarande gav ett problem. Denna artikel i Odoo visade miniatyrbilden korrekt, men kunde inte ladda den stora versionen. Ändrat och problemet löst.

Vad bra att det lyckades! Odoo är ofta lite mer komplext.