Hi,

I'm reporting a possible bug with trunk version of dal.py. I'm having
the traceback:

Traceback (most recent call last):
  File "/home/www-data/web2py/gluon/restricted.py", line 184, in
restricted
    exec ccode in environment
  File "/home/www-data/web2py/applications/backend/controllers/
appadmin.py", line 411, in <module>
  File "/home/www-data/web2py/gluon/globals.py", line 135, in <lambda>
    self._caller = lambda f: f()
  File "/home/www-data/web2py/applications/backend/controllers/
appadmin.py", line 127, in insert
    if form.accepts(request.vars, session):
  File "/home/www-data/web2py/gluon/sqlhtml.py", line 1205, in accepts
    self.vars.id = self.table.insert(**fields)
  File "/home/www-data/web2py/gluon/dal.py", line 4634, in insert
    return self._db._adapter.insert(self,self._listify(fields))
  File "/home/www-data/web2py/gluon/dal.py", line 814, in insert
    raise e
IntegrityError: (1452, u'Cannot add or update a child row: a foreign
key constraint fails (`tuubiodb`.`tags`, CONSTRAINT `tags_ibfk_1`
FOREIGN KEY (`parent`) REFERENCES `tags` (`id`) ON DELETE CASCADE)')

with table definition

db.define_table("tags",
    Field("name","string"),
    Field("parent", "reference tags",required=False),
    format="%(name)s")

Web2py tries to insert parent with value 0, while mySQL only accepts
"null" as a reference to non-existing table.

Reply via email to