This is not allowed
Field('text', type=utext, default=""),
'text' cannot be a field name.
On Monday, 4 June 2012 16:54:46 UTC-5, Alexander Shashkevych wrote:
>
>
> Hi,
>
> I got strange error when tried to use SQLCustomType. I'm trying to create
> custom type which will handle unicode<->utf8 conversions. Since DB stores
> in utf8, but my app uses unicode, so I tried to create custom type which
> handles such conversions. Here is my code:
>
> db = DAL("sqlite:////tmp/base.sqlite")
>
> utext = SQLCustomType(
> type="text",
> native="text",
> encoder=(lambda x: x.encode("utf-8")),
> decoder=(lambda x: x.decode("utf-8"))
> )
>
> db.define_table('posts',
> Field('title', type=utext, default=""),
> Field('text', type=utext, default=""),
> Field('html', type=utext, default=""))
>
> Now I'm doing insert into this table:
>
> id = db.posts.insert(title=u"Один", text=u"Два", html=u"Три")
>
> This leads to following error:
>
> File "/Users/stunpix/Projects/app/logic/posts.py", line 28, in save
> id = db.posts.insert(title=u"Один", text=u"Два", html=u"Три")
> File "/Users/stunpix/Projects/app/contrib/web2py/dal.py", line 6829, in
> insert
> return self._db._adapter.insert(self,self._listify(fields))
> File "/Users/stunpix/Projects/app/contrib/web2py/dal.py", line 928, in
> insert
> raise e
> OperationalError: no such column: Два
>
> I did something wrong? Why value of "text" field was interpreted as
> field's name?
>