db.define_table ('persona', Field ('nombre'), format = '% (name) s')formato de representación en la base de datos de web2py
Lo Qué hace este formato aquí?
db.define_table ('persona', Field ('nombre'), format = '% (name) s')formato de representación en la base de datos de web2py
Lo Qué hace este formato aquí?
El argumento format
se utiliza para determinar cómo se mostrarán los campos de otras tablas que hacen referencia a la tabla 'persona'. Por ejemplo, si se define:
db.define_table('dog',
Field('name'),
Field('owner', db.person)
El campo 'propietario' es un campo de referencia que hace referencia a la tabla 'persona' (es decir, que las tiendas de discos de identificación de registros de la tabla 'persona'). En la mayoría de los casos, cuando visualiza datos de la tabla 'perro', no desea mostrar el ID de registro de db.person sin procesar que está almacenado en el campo 'propietario' porque eso no tiene ningún significado; en su lugar, tiene más sentido mostrar el 'nombre' de la persona. En web2py, el atributo format
de la tabla habilita esta sustitución automática tanto en formularios como en tablas.
Cuando crea un SQLFORM basado en la tabla 'perro', generará automáticamente una lista desplegable para el campo 'propietario', y debido al argumento format='%(name)s'
de la definición de la tabla 'persona', el drop- la lista desplegable mostrará los nombres de db.person en lugar de los id de registro (aunque a partir del envío del formulario, el campo "propietario" almacenará el id. de registro asociado en lugar del nombre).
Además, si visualiza registros de la tabla 'perro' en un SQLTABLE o SQLFORM.grid, el campo 'propietario' mostrará el nombre del propietario en lugar de la identificación del registro del propietario.
Ver http://web2py.com/books/default/chapter/29/6#Record-representation.
Gracias. Lo que no entiendo aquí es qué significan este símbolo **% ** y el ** s ** al final del argumento – Jensen
Eso es simplemente estándar [notación de formato de cadena de Python] (http://docs.python.org /library/stdtypes.html#string-formatting-operations). La cadena 'format' puede incluir los nombres de cualquier campo dentro de la tabla. – Anthony
Muchas gracias. – Jensen