I don't know why but if I do like that I have error:
table.py
db.define_table(
    'recipes',
    Field('NAME',length=512),
    Field('IMAGE','*blob*'),
    migrate=False
)
and query in controller:
db().select(db.recipes.IMAGE).first()
Версия
web2py™ Version 2.18.5-stable+timestamp.2019.04.08.04.22.03
Python Python 3.7.3: C:\Program Files (x86)\Python37-32\python.exe (prefix: 
C:\Program Files (x86)\Python37-32)Traceback

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.

Traceback (most recent call last):
  File "C:\web2py\gluon\restricted.py", line 219, in restricted
    exec(ccode, environment)
  File "C:\web2py\applications\test\controllers/default.py", line 61, in 
<module>
  File "C:\web2py\gluon\globals.py", line 421, in <lambda>
    self._caller = lambda f: f()
  File "C:\web2py\applications\test\controllers/default.py", line 9, in index
    db().select(db.recipes.IMAGE).first()
  File "C:\web2py\gluon\packages\dal\pydal\objects.py", line 2395, in select
    return adapter.select(self.query, fields, attributes)
  File "C:\web2py\gluon\packages\dal\pydal\adapters\base.py", line 763, in 
select
    return self._select_aux(sql, fields, attributes, colnames)
  File "C:\web2py\gluon\packages\dal\pydal\adapters\base.py", line 742, in 
_select_aux
    return processor(rows, fields, colnames, cacheable=cacheable)
  File "C:\web2py\gluon\packages\dal\pydal\adapters\base.py", line 306, in parse
    for row in rows
  File "C:\web2py\gluon\packages\dal\pydal\adapters\base.py", line 303, in 
<listcomp>
    self._parse(
  File "C:\web2py\gluon\packages\dal\pydal\adapters\base.py", line 232, in 
_parse
    value = self.parse_value(value, fit, ft, blob_decode)
  File "C:\web2py\gluon\packages\dal\pydal\adapters\base.py", line 199, in 
parse_value
    return self.parser.parse(value, field_itype, field_type)
  File "C:\web2py\gluon\packages\dal\pydal\parsers\__init__.py", line 100, in 
parse
    return self.registered[field_itype](value, field_type)
  File "C:\web2py\gluon\packages\dal\pydal\parsers\__init__.py", line 75, in 
__call__
    return self.call(value, field_type)
  File "C:\web2py\gluon\packages\dal\pydal\parsers\__init__.py", line 72, in 
_call
    return self.f(self.parser, value)
  File "C:\web2py\gluon\packages\dal\pydal\parsers\base.py", line 37, in _blob
    decoded = b64decode(to_bytes(value))
  File "C:\web2py\gluon\packages\dal\pydal\_compat.py", line 131, in to_bytes
    raise TypeError('Expected bytes')
TypeError: Expected bytes

Error snapshot [image: help] 
<http://127.0.0.1:8000/admin/default/ticket/test/127.0.0.1.2019-08-09.23-35-41.70898352-368b-4941-a3b8-c3eb55b113f9#>

TypeError(Expected bytes)

inspect attributes
Frames
   
   - 
   
   *File C:\web2py\gluon\restricted.py in restricted at line 219* код 
   аргументы переменные
   - 
   
   *File C:\web2py\applications\test\controllers\default.py in <module> at 
   line 61* код аргументы переменные
   - 
   
   *File C:\web2py\gluon\globals.py in <lambda> at line 421* код аргументы 
   переменные
   - 
   
   *File C:\web2py\applications\test\controllers\default.py in index at 
   line 9* код аргументы переменные
   - 
   
   *File C:\web2py\gluon\packages\dal\pydal\objects.py in select at line 
   2395* код аргументы переменные
   Code listing
   
   2390.
   2391.
   2392.
   2393.
   2394.
   2395.
   2396.
   2397.
   2398.
   2399.
   
                                       attributes.get('join', None),
                                       attributes.get('left', None),
                                       attributes.get('orderby', None),
                                       attributes.get('groupby', None))
           fields = adapter.expand_all(fields, tablenames)
           return adapter.select(self.query, fields, attributes)
   
       def iterselect(self, *fields, **attributes):
           adapter = self.db._adapter
           tablenames = adapter.tables(self.query,
   
   - 
   
   *File C:\web2py\gluon\packages\dal\pydal\adapters\base.py in select at 
   line 763* код аргументы переменные
   - 
   
   *File C:\web2py\gluon\packages\dal\pydal\adapters\base.py in _select_aux 
   at line 742* код аргументы переменные
   - 
   
   *File C:\web2py\gluon\packages\dal\pydal\adapters\base.py in parse at 
   line 306* код аргументы переменные
   - 
   
   *File C:\web2py\gluon\packages\dal\pydal\adapters\base.py in <listcomp> 
   at line 303* код аргументы переменные
   - 
   
   *File C:\web2py\gluon\packages\dal\pydal\adapters\base.py in _parse at 
   line 232* код аргументы переменные
   - 
   
   *File C:\web2py\gluon\packages\dal\pydal\adapters\base.py in parse_value 
   at line 199* код аргументы переменные
   - 
   
   *File C:\web2py\gluon\packages\dal\pydal\parsers\__init__.py in parse at 
   line 100* код аргументы переменные
   - 
   
   *File C:\web2py\gluon\packages\dal\pydal\parsers\__init__.py in __call__ 
   at line 75* код аргументы переменные
   - 
   
   *File C:\web2py\gluon\packages\dal\pydal\parsers\__init__.py in _call at 
   line 72* код аргументы переменные
   - 
   
   *File C:\web2py\gluon\packages\dal\pydal\parsers\base.py in _blob at 
   line 37* код аргументы переменные
   - 
   
   *File C:\web2py\gluon\packages\dal\pydal\_compat.py in to_bytes at line 
   131* код аргументы переменные
   Function argument list
   
   (obj=<fdb.fbcore.BlobReader object>, charset='utf-8', errors='strict')
   Code listing
   
   126.
   127.
   128.
   129.
   130.
   131.
   132.
   133.
   134.
   135.
   
               return None
           if isinstance(obj, (bytes, bytearray, memoryview)):
               return bytes(obj)
           if isinstance(obj, str):
               return obj.encode(charset, errors)
           raise TypeError('Expected bytes')
   
       def to_native(obj, charset='utf8', errors='strict'):
           if obj is None or isinstance(obj, str):
               return obj
   
   
Is it bug of DAL or it's normal?

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/959c7084-f409-4abb-aa6b-eaf52c872788%40googlegroups.com.

Reply via email to