Hi:

Im trying to find a good soul, that explain to me how I can intercept
a error raised by the sqlalchemy engine when the integrity of the
table fail (i.e A user try to add the same value for the unique
field).

I don't want manually search if exist the record before add another
only for not raise the error.

I have a table with 2 fields:

estados_civiles_table = Table ('estados_civiles', metadata,
    Column('id', Integer, primary_key=True),
    Column('estado_civil', Unicode(20), unique=True)
    )

this table is mapped to EstadoCivil
Plz note that estado_civil is a unique field

then I have this class and controller for my forms and validators

class NuevoEstadoCivil_Fields(widgets.WidgetsList):
    id = widgets.HiddenField()
    estado_civil =
widgets.TextField(validator=validators.UnicodeString(not_empty=True,
max=10, strip=True), attrs=dict(maxlength=20))

NuevoEstadoCivil_form = widgets.TableForm(
    fields = NuevoEstadoCivil_Fields(),
    action = "save_NuevoEstadoCivil"
    )

-----------------------------------
    @expose(template="bion.templates.nuevoestadocivil")
    def nuevoestadocivil(self, tg_errors=None):

        if tg_errors:

            flash(tg_errors)

        return dict(
            mainmenu=main_menu(menues=Menu.select(), parent=123),
            form=NuevoEstadoCivil_form
            )


 @expose()
    @validate(form=NuevoEstadoCivil_form)
    @error_handler(nuevoestadocivil)
    def save_NuevoEstadoCivil(self, **datos):
        try:
            estado_civil=datos['estado_civil']
            EstadoCivil(estado_civil=estado_civil)
        except Exception:
            flash ('El valor introducido no se agrego, porque ya
existia')

        redirect(url('/estadosciviles'))

Why  the try not work?
I use the Exception exception, because i think that is the more
generic.
Exist another short way to do it?

Thanks, a lot.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to