Thanks!

Removing "required=True" solved the problem...

Richard

On Tue, Mar 22, 2011 at 2:38 PM, Massimo Di Pierro <
[email protected]> wrote:

> This should never have worked:
>
> Field('seizure_date','date',
>        writable=False,
>        ...
>        required=True
>        ),
>
> the field is not writable (so it does not appear in form) and yet it
> is required (must have a value when doing insert).
>
> On Mar 22, 11:49 am, Richard Vézina <[email protected]>
> wrote:
> > Hello,
> >
> > None of my form won't submit anymore when I try my app under 1.94.5...
> >
> > It seems to be related to auth problem coming from the refactoring.
> >
> > Here a example of form, model and trace that occure :
> >
> > Traceback (most recent call last):
> >   File
> >
> "/home/richard/Documents/programmation/version_194-5/web2py/gluon/restricte
> d.py",
> > line 188, in restricted
> >     exec ccode in environment
> >   File
> >
> "/home/richard/Documents/programmation/version_194-5/web2py/applications/sg
> ddms/controllers/ref.py",
> > line 229, in <module>
> >   File
> >
> "/home/richard/Documents/programmation/version_194-5/web2py/gluon/globals.p
> y",
> > line 124, in <lambda>
> >     self._caller = lambda f: f()
> >   File
> >
> "/home/richard/Documents/programmation/version_194-5/web2py/gluon/tools.py"
> ,
> > line 2331, in f
> >     return action(*a, **b)
> >   File
> >
> "/home/richard/Documents/programmation/version_194-5/web2py/applications/sg
> ddms/controllers/ref.py",
> > line 26, in create
> >     if form.accepts(request.vars, session):
> >   File
> >
> "/home/richard/Documents/programmation/version_194-5/web2py/gluon/sqlhtml.p
> y",
> > line 1197, in accepts
> >     self.vars.id = self.table.insert(**fields)
> >   File
> >
> "/home/richard/Documents/programmation/version_194-5/web2py/gluon/dal.py",
> > line 4341, in insert
> >     return self._db._adapter.insert(self,self._listify(fields))
> >   File
> >
> "/home/richard/Documents/programmation/version_194-5/web2py/gluon/dal.py",
> > line 4334, in _listify
> >     raise SyntaxError,'Table: missing required field: %s' % ofield.name
> > SyntaxError: Table: missing required field: seizure
> >
> > ### Model ###
> > # ref_fnaregistry
> > db.define_table('ref_fnaregistry',
> >     Field('fnaregistry_id','id'),
> >     Field('num_part1','string',
> >         length=20,
> >         notnull=True,
> >         requires=[IS_NOT_EMPTY(error_message=T('field can\'t be
> empty'))],
> >         required=True
> >         ),
> >     Field('num_part2','string',
> >         length=20,
> >         notnull=True,
> >         requires=[IS_NOT_EMPTY(error_message=T('field can\'t be
> empty'))],
> >         required=True
> >         ),
> >     Field('num_part3','string',
> >         length=20,
> >         notnull=True,
> >         requires=[IS_NOT_EMPTY(error_message=T('field can\'t be
> empty'))],
> >         required=True
> >         ),
> >     Field('title','text'),
> >     Field('att_date','date',
> >         notnull=True,
> >         requires=[IS_NOT_EMPTY(error_message=T('field can\'t be empty')),
> >             IS_DATE(format=T('%Y-%m-%d'),error_message=T('valid date of
> > format : YYYY-MM-DD!'))],
> >         required=True
> >         ),
> >     Field('seizure','db.auth_user',
> >         readable=False,
> >         writable=False,
> >         default=auth.user and auth.user.id,
> >         notnull=True,
> >         requires=[IS_NOT_EMPTY(error_message=T('field can\'t be
> empty'))],
> >         required=True
> >         ),
> >     Field('seizure_date','date',
> >         readable=False,
> >         writable=False,
> >         default=request.now,
> >         notnull=True,
> >         requires=[IS_NOT_EMPTY(error_message=T('field can\'t be
> empty'))],
> >         required=True
> >         ),
> >     Field('last_action_by','db.auth_user',
> >         readable=False,
> >         writable=False,
> >         default=auth.user and auth.user.id,
> >         update=auth.user and auth.user.id,
> >         notnull=True,
> >         requires=[IS_NOT_EMPTY(error_message=T('field can\'t be
> empty'))],
> >         required=True
> >         ),
> >     Field('sdate','datetime',
> >         readable=False,
> >         writable=False,
> >         default=request.now,
> >         update=request.now,
> >         notnull=True,
> >         requires=[IS_NOT_EMPTY(error_message=T('field can\'t be
> empty'))],
> >         required=True
> >         ),
> >     migrate=False,
> >     sequence_name='ref_fnaregistry_fnaregistry_id_seq',
> >     format=lambda row: '%s-%s-%s / %s'\
> >
> >
> %(row.num_part1.rstrip(),row.num_part2.rstrip(),row.num_part3.rstrip(),row.
> title.rstrip()))
> >
> > ### Controller ###
> >
> > @auth.requires_login()
> > def create():
> >     if request.args(0) in ref_tables_list:
> >         redirection_argument=request.args(0)
> >         if en_ui_tables_names[request.args(0)]!=None :
> >             table_name = str.lower(en_ui_tables_names[request.args(0)])
> >         else:
> >             table_name = request.args(0).replace('ref_','')
> >         page_title=T('Form for : ')
> >         if auth.has_membership(auth.id_group('admin')):
> >             crud.settings.formstyle='divs'
> >             form = crud.create(db[request.args(0)])
> >         elif auth.has_membership(auth.id_group('technician')):
> >             crud.settings.formstyle='divs'
> >             form = crud.create(db[request.args(0)])
> >         elif auth.has_membership(auth.id_group('technician_c')):
> >             crud.settings.formstyle='divs'
> >             form = crud.create(db[request.args(0)])
> >         else:
> >             return
> > dict(form=None,page_title=page_title,table_name=table_name,\
> >                         not_allow_permission='you are not allow
> > (permission)',permission_denied='Permission denied')
> >         if form.accepts(request.vars, session):
> >             response.flash = T('form accepted')
> >             redirect(URL(r=request, f='read/'+redirection_argument,args=
> > form.vars.id))
> >         elif form.errors:
> >             response.flash = T('form has errors')
> >         else:
> >             response.flash = T('please fill out the form')
> >         return
> dict(form=form,page_title=page_title,table_name=table_name,\
> >                     not_allow_permission=None,permission_denied=None)
> >     else:
> >         redirect(URL(request.application,'default','index'))
> >         session.flash = T('invalid request')
> >
> > Should I change something??
> >
> > Thanks for help
> >
> > Richard
>

Reply via email to