import datetime; now=datetime.datetime.today()

db.define_table('Genre',
                SQLField('Name','string'))

db.Genre.Name.requires=IS_NOT_IN_DB(db,'Genre.Name')

db.define_table('Songs',
                SQLField('Name','string',requires=IS_NOT_EMPTY()),
                SQLField('file','upload',requires=IS_NOT_EMPTY()),
                SQLField('date','datetime'),
 
SQLField('download','integer',default=0,readable=False,writable=False),
                SQLField('genre',db.Genre),
                SQLField('usr',db.auth_user),
 
SQLField('album','string',default='Unknown',requires=IS_NOT_EMPTY()),
 
SQLField('artist','string',default='Unknown',requires=IS_NOT_EMPTY()),
 
SQLField('rating','double',default=0,readable=False,writable=False),
 
SQLField('rater','integer',default=0,readable=False,writable=False),
 
SQLField('play','integer',default=0,readable=False,writable=False))

db.Songs.genre.requires=IS_IN_DB(db,'Genre.id','%(Name)s')
db.Songs.usr.requires=IS_IN_DB(db,'auth_user.id','%(first_name)s')
db.Songs.date.default=now
db.Songs.date.readable=False
db.Songs.date.writable=False
i hav created the above table which doesn't shows any error until i
put a data in db.Songs.After inserting the data,if i go to database
administration n open db.Songs,it shows:
Error traceback

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.



Traceback (most recent call last):
  File "/home/karan/Desktop/web2py/gluon/restricted.py", line 186, in
restricted
    exec ccode in environment
  File "/home/karan/Desktop/web2py/applications/Music_Library/views/
appadmin.html", line 160, in <module>
    <strong>{{="%02d" % ram['oldest'][0]}}</strong> hours
  File "/home/karan/Desktop/web2py/gluon/sqlhtml.py", line 1175, in
__init__
    r = field.represent(r)
  File "/home/karan/Desktop/web2py/gluon/sql.py", line 498, in
<lambda>
    field.represent = lambda id, r=referenced, f=ff: f(r,id)
  File "/home/karan/Desktop/web2py/gluon/sql.py", line 472, in ff
    return r._format(row)
TypeError: 'NoneType' object is not callable

Error snapshot
Detailed traceback description

    * Exception: <type 'exceptions.TypeError'>('NoneType' object is
not callable)
      Exception instance attributes
          o __setattr__: <method-wrapper '__setattr__' of
exceptions.TypeError object>
          o __reduce_ex__: <built-in method __reduce_ex__ of
exceptions.TypeError object>
          o __getslice__: <method-wrapper '__getslice__' of
exceptions.TypeError object>
          o __getitem__: <method-wrapper '__getitem__' of
exceptions.TypeError object>
          o __setstate__: <built-in method __setstate__ of
exceptions.TypeError object>
          o __getattribute__: <method-wrapper '__getattribute__' of
exceptions.TypeError object>
          o __str__: <method-wrapper '__str__' of exceptions.TypeError
object>
          o args: ("'NoneType' object is not callable",)
          o __reduce__: <built-in method __reduce__ of
exceptions.TypeError object>
          o __format__: <built-in method __format__ of
exceptions.TypeError object>
          o __class__: <type 'exceptions.TypeError'>
          o __dict__: {}
          o __delattr__: <method-wrapper '__delattr__' of
exceptions.TypeError object>
          o __subclasshook__: <built-in method __subclasshook__ of
type object>
          o __repr__: <method-wrapper '__repr__' of
exceptions.TypeError object>
          o __init__: <method-wrapper '__init__' of
exceptions.TypeError object>
          o __hash__: <method-wrapper '__hash__' of
exceptions.TypeError object>
          o __sizeof__: <built-in method __sizeof__ of
exceptions.TypeError object>
          o __doc__: 'Inappropriate argument type.'
          o __unicode__: <built-in method __unicode__ of
exceptions.TypeError object>
          o __new__: <built-in method __new__ of type object>
    * Python 2.6.5: /usr/bin/python

File /home/karan/Desktop/web2py/gluon/restricted.py in restricted at
line 186
[ code | arguments | variables ]
Function argument list: (code='response.write(\'<!DOCTYPE html PUBLIC
"-//W3C//D...n </div>\\n </body>\\n</html>\\n\', escape=False)',
environment={'A': <class 'gluon.html.A'>, 'Auth': <class
'gluon.tools.Auth'>, 'B': <class 'gluon.html.B'>, 'BEAUTIFY': <class
'gluon.html.BEAUTIFY'>, 'BODY': <class 'gluon.html.BODY'>, 'BR':
<class 'gluon.html.BR'>, 'CENTER': <class 'gluon.html.CENTER'>,
'CLEANUP': <class 'gluon.validators.CLEANUP'>, 'CODE': <class
'gluon.html.CODE'>, 'CRYPT': <class 'gluon.validators.CRYPT'>, ...},
layer='/home/karan/Desktop/web2py/applications/Music_Library/views/
appadmin.html')

181.
182.
183.
184.
185.
186.

187.
188.
189.
190.



        if type(code) == types.CodeType:
            ccode = code
        else:
            ccode = compile2(code,layer)

exec ccode in environment

    except HTTP:
        raise
    except Exception:
        # XXX Show exception in Wing IDE if running in debugger

    * environment: {'A': <class 'gluon.html.A'>, 'Auth': <class
'gluon.tools.Auth'>, 'B': <class 'gluon.html.B'>, 'BEAUTIFY': <class
'gluon.html.BEAUTIFY'>, 'BODY': <class 'gluon.html.BODY'>, 'BR':
<class 'gluon.html.BR'>, 'CENTER': <class 'gluon.html.CENTER'>,
'CLEANUP': <class 'gluon.validators.CLEANUP'>, 'CODE': <class
'gluon.html.CODE'>, 'CRYPT': <class 'gluon.validators.CRYPT'>, ...}
    * ccode: <code object <module> at 0x4057eb8, file "/home/...tions/
Music_Library/views/appadmin.html", line 1>

File /home/karan/Desktop/web2py/applications/Music_Library/views/
appadmin.html in <module> at line 160
[ code | arguments | variables ]
Function argument list: ()

151.
152.
153.
154.
155.
156.
157.
158.
159.
160.

161.
162.
163.
164.
165.
166.
167.
168.
169.
170.



        response.write(' ]', escape=False)
        pass
    response.write('    \n    ', escape=False)
    if rows:
        response.write('\n       <div style="overflow: auto;"
width="80%">\n       ', escape=False)
        linkto=URL(r=request,f='update',args=request.args[0])
        response.write('\n       ', escape=False)
        upload=URL(r=request,f='download',args=request.args[0])
        response.write('    \n       ', escape=False)
response.write(SQLTABLE(rows,linkto,upload,orderby=True,_class='sortable'))

        response.write('\n       </div>\n    ', escape=False)
        pass
    response.write('\n    <br/><br/><h2>', escape=False)
    response.write(T("Import/Export"))
    response.write('</h2><br/>\n    [ <a href="', escape=False)
 
response.write(URL(r=request,f='csv',args=request.args[0],vars=dict(query=query)))
    response.write('">', escape=False)
    response.write(T("export as csv file"))
    response.write('</a> ]\n  ', escape=False)
    if table:

    * hours: undefined
    * strong: undefined
    * ram: undefined

File /home/karan/Desktop/web2py/gluon/sqlhtml.py in __init__ at line
1175
[ code | arguments | variables ]
Function argument list: (self=<gluon.sqlhtml.SQLTABLE object>,
sqlrows=<gluon.sql.Rows object>, linkto='/Music_Library/appadmin/
update/db', upload='/Music_Library/appadmin/download/db',
orderby=True, headers={}, truncate=16, columns=['Songs.id',
'Songs.Name', 'Songs.file', 'Songs.date', 'Songs.download',
'Songs.genre', 'Songs.usr', 'Songs.album', 'Songs.artist',
'Songs.rating', 'Songs.rater', 'Songs.play'], th_link='',
**attributes={'_class': 'sortable'})

1170.
1171.
1172.
1173.
1174.
1175.

1176.
1177.
1178.
1179.



                    r = record[fieldname]
                else:
                    raise SyntaxError, 'something wrong in Rows
object'
                r_old = r
                if field.represent:
r = field.represent(r)

                elif field.type == 'blob' and r:
                    r = 'DATA'
                elif field.type == 'upload':
                    if upload and r:

    * field: <gluon.sql.Field object>
    * r: 1
    * field.represent: <function <lambda>>

File /home/karan/Desktop/web2py/gluon/sql.py in <lambda> at line 498
[ code | arguments | variables ]
Function argument list: (id=1, r=<Table {'ALL': <gluon.sql.SQLALL
object at 0x406...[], 'id': <gluon.sql.Field object at 0x4066310>}>,
f=<function ff>)

493.
494.
495.
496.
497.
498.

499.
500.
501.
502.



        requires.append(validators.IS_DATETIME())
    elif field._db and field_type.startswith('reference') and \
            field_type.find('.')<0 and \
            field_type[10:] in field._db.tables:
        referenced = field._db[field_type[10:]]
field.represent = lambda id, r=referenced, f=ff: f(r,id)

        if hasattr(referenced,'_format') and referenced._format:
            requires = validators.IS_IN_DB(field._db,referenced.id,
                                           referenced._format)
            if field.unique:

    * referenced: undefined
    * f: <function ff>
    * field: undefined
    * r: <Table {'ALL': <gluon.sql.SQLALL object at 0x406...[], 'id':
<gluon.sql.Field object at 0x4066310>}>
    * ff: undefined
    * id: 1

File /home/karan/Desktop/web2py/gluon/sql.py in ff at line 472
[ code | arguments | variables ]
Function argument list: (r=<Table {'ALL': <gluon.sql.SQLALL object at
0x406...[], 'id': <gluon.sql.Field object at 0x4066310>}>, id=1)

467.
468.
469.
470.
471.
472.

473.
474.
475.
476.



        if not row:
            return id
        elif hasattr(r,'_format') and isinstance(r._format,str):
            return r._format % row
        elif hasattr(r,'_format'):
return r._format(row)

        else:
            return id

    if field_type == 'string':

    * r: <Table {'ALL': <gluon.sql.SQLALL object at 0x406...[], 'id':
<gluon.sql.Field object at 0x4066310>}>
    * r._format: None
    * row: <Row {'update_record': <function <lambda> at 0x4...>,
'Songs': <gluon.sql.Set object at 0x3d5f590>}>

Moreover,it is giving some other error msg on a ubuntu 10.04
32bit(mine is 64bit).
plz help

Reply via email to