This line here:
('ERROR','23502', 'null value in column "aboutid" violates not-null constraint')
it seems that you have set a validator to one of the hidden fields, and
since it doesn't seem to a have a default value either, then it's value
on submit is null and therefore rejected... could you show the table
definition?
> In a function I have the following line of code:
>
> form=crud.update(table=db.aboutText,hidden=dict(nodeID=id,aboutID=HOMEABOUTID),record=row,next=session.crud_next,deletable=True)
>
> In the view the hidden fields are rendered correctly:
>
> <input type="hidden" value="11" name="nodeID">
> <input type="hidden" value="1" name="aboutID">
>
> When I submit the form I get the following error:
>
> Ticket ID
>
> 127.0.0.1.2012-11-22.16-10-08.6c149a65-a3aa-43b5-b417-a44fe61ce122
> <class 'gluon.contrib.pg8000.errors.ProgrammingError'> ('ERROR',
> '23502', 'null value in column "aboutid" violates not-null
> constraint') Version web2py™ (2, 2, 1, datetime.datetime(2012, 10,
> 21, 16, 57, 4), 'stable') Python Python 2.7.1:
> /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
>
> Traceback
>
> 1.
> 2.
> 3.
> 4.
> 5.
> 6.
> 7.
> 8.
> 9.
> 10.
> 11.
> 12.
> 13.
> 14.
> 15.
> 16.
> 17.
> 18.
> 19.
> 20.
>
> Traceback (most recent call last):
> File "/Users/annet/web2py/gluon/restricted.py", line 212, in
> restricted exec ccode in environment
> File "/Users/annet/web2py/applications/init/controllers/cmssite.py"
> <http://127.0.0.1:8000/admin/edit/init/controllers/cmssite.py>, line
> 417, in <module> File "/Users/annet/web2py/gluon/globals.py", line
> 188, in <lambda> self._caller = lambda f: f() File
> "/Users/annet/web2py/gluon/tools.py", line 2912, in f return
> action(*a, **b) File
> "/Users/annet/web2py/applications/init/controllers/cmssite.py"
> <http://127.0.0.1:8000/admin/edit/init/controllers/cmssite.py>, line
> 239, in homePage
> form=crud.update(table=db.aboutText,hidden=dict(nodeID=id,aboutID=HOMEABOUTID),record=row,next=session.crud_next,deletable=True)
> File "/Users/annet/web2py/gluon/tools.py", line 3511, in update
> detect_record_change=self.settings.detect_record_change): File
> "/Users/annet/web2py/gluon/sqlhtml.py", line 1475, in accepts
> self.vars.id = self.table.insert(**fields) File
> "/Users/annet/web2py/gluon/dal.py", line 7806, in insert ret =
> self._db._adapter.insert(self,self._listify(fields)) File
> "/Users/annet/web2py/gluon/dal.py", line 1161, in insert raise e
> ProgrammingError: ('ERROR', '23502', 'null value in column "aboutid"
> violates not-null constraint')
>
> Error snapshot [image: help]
>
> <class 'gluon.contrib.pg8000.errors.ProgrammingError'>(('ERROR',
> '23502', 'null value in column "aboutid" violates not-null
> constraint'))
>
> inspect attributes
> Frames
>
> -
>
> *File /Users/annet/web2py/gluon/restricted.py in restricted at
> line 212* code arguments variables
> -
>
> *File /Users/annet/web2py/applications/init/controllers/cmssite.py
> in <module> at line 417* code arguments variables
> -
>
> *File /Users/annet/web2py/gluon/globals.py in <lambda> at line
> 188* code arguments variables
> -
>
> *File /Users/annet/web2py/gluon/tools.py in f at line 2912* code
> arguments variables
> -
>
> *File /Users/annet/web2py/applications/init/controllers/cmssite.py
> in homePage at line 239* code arguments variables
> -
>
> *File /Users/annet/web2py/gluon/tools.py in update at line 3511*
> code arguments variables
> -
>
> *File /Users/annet/web2py/gluon/sqlhtml.py in accepts at line
> 1475* code arguments variables
> -
>
> *File /Users/annet/web2py/gluon/dal.py in insert at line 7806*
> code arguments variables
> -
>
> *File /Users/annet/web2py/gluon/dal.py in insert at line 1161*
> code arguments variables
> Function argument list
>
> (self=<gluon.dal.PostgreSQLAdapter object>, table=<Table aboutText
> (id,nodeID,aboutID,text,createdOn,modifiedOn)>,
> fields=[(<gluon.dal.Field
> object>, '<h4><em>Iedereen is welkom bij het USC!</em></h4...ard
> object>is overal
> een horecavoorziening aanwezig.</p>'), (<gluon.dal.Field object>,
> datetime.datetime(2012, 11, 22, 16, 10, 8, 432055)),
> (<gluon.dal.Field
> object>, datetime.datetime(2012, 11, 22, 16, 10, 8, 432055)),
> (<gluon.dal.Field object>, ''), (<gluon.dal.Field object>, '')])
> Code listing
>
> 1156.
> 1157.
> 1158.
> 1159.
> 1160.
> 1161.
>
> 1162.
> 1163.
> 1164.
> 1165.
>
> try:
> self.execute(query)
> except Exception, e:
> if isinstance(e,self.integrity_error_class()):
> return None
> raise e
>
> if hasattr(table,'_primarykey'):
> return dict([(k[0].name, k[1]) for k in fields \
> if k[0].name in table._primarykey])
> id = self.lastrowid(table)
>
> Variables e ProgrammingError('ERROR', '23502', 'null value in
> column "aboutid" violates not-null constraint')
>
>
> Why are the hidden fields ignored in form=crud.update(..)?
>
> Kind regards,
>
> Annet.
>
--