Pregunta

Tengo un miembro de la tabla que incluye SQLField("year", db.All_years)

y la tabla All_years como la siguiente:

db.define_table("All_years",
  SQLField("fromY","integer"),
  SQLField("toY","integer")
  )

y las restricciones son:

db.member.year.requires = IS_IN_DB(db, 'All_years.id','All_years.fromY')

El problema es cuando selecciono un año de desplegable El valor de la columna del año es la identificación del año, no el valor del año, por ejemplo, si el año 2009 tiene DB ID = 1 el valor del año en db igual = 1 no igual 2009.

No entiendo por qué.

¿Fue útil?

Solución

¡Veo que tu proyecto está progresando bien!

El validador es IS_IN_DB(dbset, field, label). Entonces deberías intentarlo:

db.member.year.requires = IS_IN_DB(db, 'All_years.id', '%(fromY)d')

tener una etiqueta correcta en su lista desplegable.

Ahora, desde su mesa, parece que preferiría elegir un intervalo en lugar de solo el año inicial, en ese caso puede usar esto:

db.member.year.requires = IS_IN_DB(db, 'All_years.id', '%(fromY)d to %(toY)d')

Eso se mostrará, por ejemplo, "1980 a 1985", etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top