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.
> 

-- 



Reply via email to