Do you still get the ticket if you remove the logic for the additional form on the profile page?
On Sunday, 24 January 2016 21:11:33 UTC-6, Yi Liu wrote: > > Dear fellow w2p users, > > First, thank you so much for providing this great app Web2Py for *free*. > > Recently I updated my app to allow user to delete account themselves. > > auth.settings.allow_delete_accounts= True > > > Today, I received feedback from user that that function is broken on my > site. > > Then I realize there is a ticket when that function is called. > > <class 'sqlite3.IntegrityError'> FOREIGN KEY constraint failed > Version > web2py™ Version 2.13.4-stable+timestamp.2015.12.26.04.59.39 > Python Python 2.7.11: > /home/liuyidh/.pyenv/versions/miniconda-3.16.0/bin/python (prefix: > /home/liuyidh/.pyenv/versions/miniconda-3.16.0) > Traceback > > 1. > 2. > 3. > 4. > 5. > 6. > 7. > 8. > 9. > 10. > 11. > 12. > 13. > 14. > 15. > 16. > 17. > 18. > 19. > 20. > > Traceback (most recent call last): > File "/home/liuyidh/lovelovebean.com/gluon/restricted.py", line 227, in > restricted > exec ccode in environment > File > "/home/liuyidh/lovelovebean.com/applications/LLBean/controllers/default.py" > <http://127.0.0.1:8001/admin/edit/LLBean/controllers/default.py>, line 97, in > <module> > File "/home/liuyidh/lovelovebean.com/gluon/globals.py", line 412, in > <lambda> > self._caller = lambda f: f() > File > "/home/liuyidh/lovelovebean.com/applications/LLBean/controllers/default.py" > <http://127.0.0.1:8001/admin/edit/LLBean/controllers/default.py>, line 55, in > user > return dict(form=auth(), formFil=formFil) > File "/home/liuyidh/lovelovebean.com/gluon/tools.py", line 1923, in __call__ > return getattr(self, args[0])() > File "/home/liuyidh/lovelovebean.com/gluon/tools.py", line 4025, in profile > self.log_event(log, self.user) > File "/home/liuyidh/lovelovebean.com/gluon/tools.py", line 2521, in > log_event > origin=origin, user_id=user_id) > File "/home/liuyidh/lovelovebean.com/gluon/packages/dal/pydal/objects.py", > line 731, in insert > ret = self._db._adapter.insert(self, self._listify(fields)) > File > "/home/liuyidh/lovelovebean.com/gluon/packages/dal/pydal/adapters/base.py", > line 746, in insert > raise e > IntegrityError: FOREIGN KEY constraint failed > > > > I searched stackoverflow for tips. It seems the causes are different. Some > are due to migration, some due to wrong reference, others due to auth(). > > I have a user form in the profile page: > > def user(): > if request.args(0)=='profile': > db.auth_criteria.user_id.default = auth.user_id > record = db.auth_criteria(db.auth_criteria.user_id==auth.user_id) > formFil=SQLFORM(db.auth_criteria, > record=record, > labels = {'salePrice':XML('<h3>TWO-A-DAY Clothing & Home > Goods</h3> (By Sale Price)'), > 'tgPrice':XML('<h3>ONE-A-DAY Travel and Gear </h3> > (By Sale Price)'), > 'aveRev':XML('<b>By Avereage Ratings</b>'), > 'percSave':XML('<b>By Percentage Saved</b>'), > 'genderPref':XML('<h3>By Gender of Products</h3> > AND-gate. Other filters apply') > }, > buttons = [TAG.button('Set Mine', _class='btn-primary')]) > if formFil.process().accepted: > response.flash = XML('Your preference is recorded. <br>Get > ready for lovely beans.') > return dict(form=auth(), formFil=formFil) > else: > return dict(form=auth()) > > I have a custom defined table: > > db.define_table('auth_criteria', > Field <http://127.0.0.1:8001/examples/global/vars/Field>('user_id', > 'reference auth_user', readable=False, writable=False), > Field <http://127.0.0.1:8001/examples/global/vars/Field>('salePrice', > 'integer', widget=SQLFORM > <http://127.0.0.1:8001/examples/global/vars/SQLFORM>.widgets.radio.widget, > requires = IS_IN_SET > <http://127.0.0.1:8001/examples/global/vars/IS_IN_SET>(salePrice)), > Field <http://127.0.0.1:8001/examples/global/vars/Field>('tgPrice', > 'integer', widget=SQLFORM > <http://127.0.0.1:8001/examples/global/vars/SQLFORM>.widgets.radio.widget, > requires = IS_IN_SET > <http://127.0.0.1:8001/examples/global/vars/IS_IN_SET>(tgPrice)), > Field <http://127.0.0.1:8001/examples/global/vars/Field>('aveRev', > 'integer', requires = IS_IN_SET > <http://127.0.0.1:8001/examples/global/vars/IS_IN_SET>(aveRev)), > Field <http://127.0.0.1:8001/examples/global/vars/Field>('percSave', > 'integer', requires = IS_IN_SET > <http://127.0.0.1:8001/examples/global/vars/IS_IN_SET>(percSave)), > > ... -- 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.

