Let me try reproduce this.

On Jan 28, 1:06 am, Frederik Wagner <fner...@googlemail.com> wrote:
> Hi,
>
> both version do save a None (actually all form.accepts, FORM.accepts,
> SQLFORM.accepts do).
>
> Wouldn't be the correct behavior to consistently and always convert a
> False value to 'F'? Am I missing something?
>
> Thanks a lot!
> Frederik
>
> On Wed, Jan 27, 2010 at 4:59 PM, mdipierro <mdipie...@cs.depaul.edu> wrote:
> > On a second look I believe FORM.accepts behave correctly. Since it is
> > not supposed to convert None to 'F'. Only SQLFORM.accepts does that.
>
> > On Jan 27, 8:24 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
> >> Why
>
> >> def test1():
> >>     form=SQLFORM.factory(Field("bool","boolean"))
>
> >>     if FORM.accepts(form, request.vars, session, keepvalues=True):
> >>         db.test.insert(bool=request.vars.bool)
>
> >>     return dict(form=form,list=db().select(db.test.ALL))
>
> >> and not
>
> >> def test1():
> >>     form=SQLFORM.factory(Field("bool","boolean"))
>
> >>     if form.accepts(request.vars, session, keepvalues=True):
> >>         db.test.insert(bool=request.vars.bool)
>
> >>     return dict(form=form,list=db().select(db.test.ALL))
>
> >> ?
>
> >> Please check the latter, it should work fine. I check why the former
> >> does not.
>
> >> On Jan 27, 1:50 am, Frederik Wagner <fner...@googlemail.com> wrote:
>
> >> > Hi .*,
>
> >> > it seems to me that there is a bug saving boolean fields with
> >> > SQLFORM.factory forms.
> >> > If I define a boolean field in a table and use the standard SQLFORM to
> >> > make an input form, the accept function will save 'T' of 'F' to the
> >> > DB.
> >> > Whereas in the case where I create a form with SQLFORM.factory, do a
> >> > FORM.accept and an explicit db.insert, instead of 'F' there will be a
> >> > NULL on the DB.
>
> >> > Here a test setup:
>
> >> > DB:
> >> > db.define_table('test',Field('bool','boolean'))
>
> >> > CONTROLLER:
> >> > def test1():
> >> >     form=SQLFORM.factory(Field("bool","boolean"))
>
> >> >     if FORM.accepts(form, request.vars, session, keepvalues=True):
> >> >         db.test.insert(bool=request.vars.bool)
>
> >> >     return dict(form=form,list=db().select(db.test.ALL))
>
> >> > def test2():
> >> >     form=SQLFORM(db.test)
>
> >> >     if form.accepts(request.vars, session, keepvalues=True):
> >> >         response.flash = 'done'
>
> >> >     return dict(form=form,list=db().select(db.test.ALL))
>
> >> > test1 gives 'True' ('T') and 'None' (NULL) and test2 'True' ('T') and
> >> > 'False' ('F').
>
> >> > A bug or my problem? :-)
>
> >> > Bye
> >> > Frederik
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "web2py-users" group.
> > To post to this group, send email to web...@googlegroups.com.
> > To unsubscribe from this group, send email to 
> > web2py+unsubscr...@googlegroups.com.
> > For more options, visit this group 
> > athttp://groups.google.com/group/web2py?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en.

Reply via email to