[pyar] Campo Primario Web2py

nicolás rosbaco antiyanki en gmail.com
Jue Feb 3 20:12:46 ART 2011


OK. entonces: unique, evita la inserción de tuplas en las tablas (si la
clave esta repetida)... y pasa por cuenta del programador evitar que ello
ocurra (o atrapar la excepción supongo yo)

con IS_NOT_IN_DB las verificaciones se hacen antes de modificar la tabla...
pero la tabla no es creada con la restricción referida ¿está bien?

Por otro lado: como hago (cuando creo la tabla) si quiero incluir más de un
requires???


Bueno gente, esto esta re bueno. Muchas gracias


El 3 de febrero de 2011 19:49, Mariano Reingart <reingart en gmail.com>escribió:

> Las restricciones primarykey, unique y notnull  se aplican a nivel de
> datos, web2py no las verifica, simplemente crea las tablas con esas
> condiciones, y el servidor de base de datos debería hacer el resto
> (por lo que los conectores lanzan excepciones).
>
> Los validadores (IS_NOT_IN_DB, IS_IN_DB, IS_NOT_EMPTY) funcionan a
> nivel de los controladores/vistas, son verificados antes de modificar
> la base de datos, cuando el usuario utiliza un formulario (y muestran
> un mensaje de error en la pantalla, con la posibilidad de corregir el
> formulario).
>
> En el libro está explicado en detalle:
>
>
> http://www.latinuxpress.com/books/drafts/web2py/caps/cap6.html#representacion-de-registros
>
> En este caso, con IS_NOT_IN_DB no aceptaría el formulario mostrando un
> error al usuario si esta duplicado algún valor.
>
> Sds
>
> Mariano Reingart
> http://www.sistemasagiles.com.ar
> http://reingart.blogspot.com
>
> 2011/2/3 nicolás rosbaco <antiyanki en gmail.com>:
> > me faltó decir que estoy trabajando con web2py
> >
> > El 3 de febrero de 2011 19:30, nicolás rosbaco <antiyanki en gmail.com>
> > escribió:
> >>
> >> Hola, mira no tengo la solución... pero si me paso algo parecido y de
> >> pronto por acá puedo llegar a saber que pasa.
> >>
> >> En mi caso el unique tampoco anduvo (¿ignoro por que??) pero utilicé lo
> >> siguiente:
> >>
> >> db.nadadores.email.requires = IS_NOT_IN_DB(db, 'nadadores.email',
> >> error_message='Dirección de mail duplicada. Ya existe un usuario
> registrado
> >> con esta dirección de mail')
> >>
> >> La verdad que me gustaría saber para que sirve el unique, ya que suponía
> >> lo mismo que vos
> >>
> >>
> >> 2011/2/3 Roberto Perdomo <robertop23 en gmail.com>
> >>>
> >>> Buenas tardes,
> >>>
> >>> Alguien de casualidad tiene conocimiento en cuanto a como definir un
> >>> campo primario adicional en una tabla.
> >>>
> >>> Tengo por ejemplo una tabla:
> >>>
> >>> db.define_table('tipo_nomina',
> >>>       SQLField('nomina', type='string', length=40, notnull=True,
> >>> required=True, unique=True)
> >>>       )
> >>>
> >>> Donde unique=True supuestamente debería funcionar y hacer que no se
> >>> permitan valores repetidos para el campo nomina, pero, al añadir un
> valor
> >>> repetido resulta el siguiente error:
> >>>
> >>>
> >>> IntegrityError: duplicate key value violates unique constraint
> >>> "tipo_nomina_nomina_key"
> >>>
> >>> Investigue un poco y dicen que es un error de la Base de Datos, en mi
> >>> caso es Postgres. Entonces Web2py no es capaz de manejar o mejor dicho,
> >>> generar un error para cuando se esta insertando un valor repetido en un
> >>> campo?
> >>>
> >>> Intente con primarykey = ['nomina'], pero fue infructuoso.
> >>>
> >>> lo que quisiera seria realmente poder definir un campo primario para
> >>> evitar valores repetidos, pero no encuentro la manera adecuada para
> ello.
> >>>
> >>> PD: los formularios son generado utilizando SQLFORM y CRUD
> >>>
> >>> Gracias de antemano
> >>>
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> pyar mailing list pyar en python.org.ar
> >>> http://listas.python.org.ar/listinfo/pyar
> >>>
> >>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >>
> >>
> >>
> >> --
> >> "En un país colonial las oligarquías son las dueñas de los diccionarios"
> >> (John William Cooke)
> >
> >
> >
> > --
> > "En un país colonial las oligarquías son las dueñas de los diccionarios"
> > (John William Cooke)
> >
> > _______________________________________________
> > pyar mailing list pyar en python.org.ar
> > http://listas.python.org.ar/listinfo/pyar
> >
> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>



-- 
"En un país colonial las oligarquías son las dueñas de los diccionarios"
(John William Cooke)
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110203/b01d7e85/attachment.html>


More information about the pyar mailing list