Humm this may actually be considered a SQLFORM bug. Since it just puts whatever the insert returns in self.vars.id and never checks if it is actually an id or zero, zero actually means it failed because of a before_insert such as yours.
The bug is here: https://github.com/web2py/web2py/blob/master/gluon/sqlhtml.py#L1857 It should be: ret = self.table.insert(**fields) if ret: self.vars.id = ret -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

