Itgenodo101 - tabell product.product - fil kunne ikke dekodes som en bildefil

Når jeg prøver å laste data fra Odoo-tabellen odoo.product.product, får jeg stadig feilen:

itgenodo101
Denne filen kunne ikke dekodes som en bildefil.
(odoo.exceptions.useError).

image

Jeg har forsøkt å arbeide rundt denne tabellen, men den er viktigere enn forventet.

Noen 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.

Takk for den raske tilbakemeldingen. Har nå klart å løse det. Jeg vil gjerne dele hva løsningen var i mitt tilfelle.

Noen produkter viste alt-teksten i oversikten i stedet for bildet:

image

Dette ble rettet, deretter sjekket vi i trinn på 200 for å se hvilken linje som fortsatt ga et problem. Denne artikkelen i Odoo viste miniatyrbildet pent, men kunne ikke laste den store versjonen. Endret og problemet løst.

Flott at det lyktes! Odoo er ofte litt mer komplekst.