SQLFORM.grid no me Exporta las relaciones de las Tablas

44 views
Skip to first unread message

IvanaEmi

unread,
Apr 7, 2014, 8:04:26 PM4/7/14
to web2py-...@googlegroups.com
Hola_:

Tengo un Pequeño problema, SQLFORM.grid no me exporta la relaciones de las tablas, les muestro un ejemplo: no me deja agregar la relacion del pais, ni de la localidad del usuario, me tira un error :

<type 'exceptions.AttributeError'> 'tuple' object has no attribute 'append'

De todos modos, lo deje así cuando obtengo el listado, en lugar de mostrarme el nombre de la provincia, me muestra el ID, en cuanto a la primera relacion db.alumno.id==db.datosExtras.usuario, si me muestra los datos de la tabla datosExtras, pero de db.provincias necesito el nombre.

query=((db.alumno.id==db.datosExtras.usuario)&(db.colegios.id==db.datosExtras.colegio)&(db.alumno.provincia==db.provincia.id))
   fields = (db.alumno.id,db.alumno.sexo,db.alumno.edad,db.alumno.nro_doc,db.colegios.name,db.provincia.name,db.datosExtras.condicionIngreso)
   headers = {'alumno.id':   'Nro',
           'alumno.nro_doc':   'DNI',
           'alumno.sexo': 'Sexo',
           'provincia.name': 'Provincia',
           'alumno.edad':'edad',
           'colegios.name':'Colegio',
           'datosExtras.condicionIngreso':'Condición de Ingreso',
          }

    #Let's specify a default sort order on date_of_birth column in grid
   default_sort_order=[db.alumno.id]
  
   grid =SQLFORM.grid(query=query, fields=fields, headers=headers, orderby=default_sort_order,
                create=False, deletable=False, editable=False, maxtextlength=64, paginate=25)
   return dict(grid=grid)

Pregunto: Esta limitado a relacionar solo dos tablas?Ya no se como mas probar, necesito que el listado me muestre los nombres de las provincias, paises y localidades no su ID.

Gracias!!!

samuel bonill

unread,
Apr 7, 2014, 9:40:37 PM4/7/14
to web2py-...@googlegroups.com
eso lo solucionas en la definicion de tus tablas que van hacer heredadas, al final tienes que agregar como quieres que se muestre los datos cuando es heredada por otra tabla.

ejemplo :

db.define_table("persona",
     Field("nombre"),
     Field("edad"),
     format='%(nombre)s')

db.define_table("empresa",
    Field("empleado", db.persona))

de esta manera se mostrara el nombre del empleado y no su ID




 


--
Has recibido este mensaje porque estás suscrito al grupo "web2py-usuarios" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a web2py-usuari...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

IvanaEmi

unread,
Apr 8, 2014, 1:17:54 PM4/8/14
to web2py-...@googlegroups.com
Samuel ..Gracias por contestarme!,..
Hice lo que me dijiste, pero nada!, supongo que es porque no hago la relación en la consulta :

query=((db.alumno.id==db.datosExtras.usuario)&(db.colegios.id==db.datosExtras.colegio)&(db.alumno.provincia==db.provincia.id))

Pero cuando agrego (db.localidad.id=db.alumno.localidad)&(db.pais.id==db.alumno,pais) mas sus correspondientes campos en fields, me vuelve a salir el error

<type 'exceptions.AttributeError'> 'tuple' object has no attribute 'append'


No entiendo que tengo mal definido, porque con db.provincia me sale!! Muestro la Bd

db.define_table('pais',
                Field('name'),
                format='%(name)s')
 db.define_table('provincia',
                Field('name'),
                format='%(name)s')
db.define_table('localidad',
                Field('name'),
                format='%(name)s')


db.define_table('alumno',
    Field('pais',db.pais, label='País'),
    Field('provincia',db.provincia, label='Provincia'),
    Field('localidad',db.localidad, label='Localidad'))

samuel bonill

unread,
Apr 8, 2014, 2:01:05 PM4/8/14
to web2py-...@googlegroups.com

IvanaEmi

unread,
Apr 8, 2014, 2:31:23 PM4/8/14
to web2py-...@googlegroups.com
Graciiiiias!!!

Todo se solucionó agregando dos simples [ ], a los campos que muestro!!..
Reply all
Reply to author
Forward
0 new messages