Skip to content

Conversation

@ch-rigu
Copy link
Contributor

@ch-rigu ch-rigu commented Jan 19, 2026

Added Hcaptcha, ReCaptcha documentation.
Added a example about how to trigger functions after Auth events.

Added Hcaptcha, ReCaptcha documentation.
Added a example about how to trigger functions after Auth events.

.. code:: python
[[try:]]
[[=form]]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why is the form in a try...except block? Can we avoid it?

Copy link
Contributor Author

@ch-rigu ch-rigu Jan 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello Massimo, The problem is without the try except block, after a completing the captcha, the app return a 500 error, it says "form is not defined". Using a try except block, all work without issues.

I don't know how to make it work without the try except.

Error trace:

127.0.0.1 - "POST /aurixvault/auth/request_reset_password HTTP/1.1" - 200 5435 > Thread-6 > 22:44:05.638
P1_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.haJwZACjZXhwzml2x2SncGFzc2tlecUFG5_8HmgHAxZH-fUzVMsLBfEmL79RjKxRxnkRpu8oGwBxF4N--ohMNhTQV_omtyqDE1MDdhNTkxqHNoYXJkX2lkzgRHJZE.7EgVLBSDBINTlbjfY78vAyrf4YbJh7yBXAlwjt5Zpdw
ES_d0a63080d61949c9bda4c945be8bce45
{"success":true,"challenge_ts":"2026-01-26T01:44:12.000000Z","hostname":"127.0.0.1","credit":false}
[2026-01-25T22:44:13.874230]: Traceback (most recent call last):
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 1025, in wrapper
    raise http_exception
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 1022, in wrapper
    context["output"] = func(*args, **kwargs)
                        ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/aur1/Documents/develop/py4web/py4web/utils/auth.py", line 1169, in _
    form=form_factory(), path=path, user=auth.get_user(), **env
         ^^^^^^^^^^^^^^
  File "/Users/aur1/Documents/develop/py4web/py4web/utils/auth.py", line 1944, in request_reset_password
    self._postprocessing("request_reset_password", form, None)
  File "/Users/aur1/Documents/develop/py4web/py4web/utils/auth.py", line 2158, in _postprocessing
    self.auth.on_accept[action](form, user)
  File "/Users/aur1/Documents/develop/py4web/apps/aurixvault/common.py", line 152, in after_request_reset_password_callback
    redirect(URL('request_reset_password_message'))
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 962, in redirect
    raise HTTP(303)
py4web.core.HTTP: 303

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 1061, in wrapper
    ret = func(*func_args, **func_kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 1046, in wrapper
    raise exception
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 1039, in wrapper
    call_f(fixture.on_success, context)
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 1004, in call_f
    return f(context)
           ^^^^^^^^^^
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 626, in on_success
    context["output"] = render(
                        ^^^^^^^
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 588, in render
    return engine.render(filename, context=context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/aur1/venv12/lib/python3.12/site-packages/renoir/apis.py", line 172, in render
    return self._render(source, file_path, context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/aur1/venv12/lib/python3.12/site-packages/renoir/apis.py", line 166, in _render
    make_traceback(exc_info)
  File "/Users/aur1/venv12/lib/python3.12/site-packages/renoir/debug.py", line 114, in make_traceback
    reraise(exc_type, exc_value, tb)
  File "/Users/aur1/venv12/lib/python3.12/site-packages/renoir/_internal.py", line 15, in reraise
    raise value.with_traceback(tb)
  File "/Users/aur1/Documents/develop/py4web/apps/aurixvault/templates/auth.html", line 75, in template
    [[=form]]
NameError: name 'form' is not defined

Traceback (most recent call last):
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 1025, in wrapper
    raise http_exception
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 1022, in wrapper
    context["output"] = func(*args, **kwargs)
                        ^^^^^^^^^^^^^^^^^^^^^
  File "/Users/aur1/Documents/develop/py4web/py4web/utils/auth.py", line 1169, in _
    form=form_factory(), path=path, user=auth.get_user(), **env
         ^^^^^^^^^^^^^^
  File "/Users/aur1/Documents/develop/py4web/py4web/utils/auth.py", line 1944, in request_reset_password
    self._postprocessing("request_reset_password", form, None)
  File "/Users/aur1/Documents/develop/py4web/py4web/utils/auth.py", line 2158, in _postprocessing
    self.auth.on_accept[action](form, user)
  File "/Users/aur1/Documents/develop/py4web/apps/aurixvault/common.py", line 152, in after_request_reset_password_callback
    redirect(URL('request_reset_password_message'))
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 962, in redirect
    raise HTTP(303)
py4web.core.HTTP: 303

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 1061, in wrapper
    ret = func(*func_args, **func_kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 1046, in wrapper
    raise exception
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 1039, in wrapper
    call_f(fixture.on_success, context)
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 1004, in call_f
    return f(context)
           ^^^^^^^^^^
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 626, in on_success
    context["output"] = render(
                        ^^^^^^^
  File "/Users/aur1/Documents/develop/py4web/py4web/core.py", line 588, in render
    return engine.render(filename, context=context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/aur1/venv12/lib/python3.12/site-packages/renoir/apis.py", line 172, in render
    return self._render(source, file_path, context)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/aur1/venv12/lib/python3.12/site-packages/renoir/apis.py", line 166, in _render
    make_traceback(exc_info)
  File "/Users/aur1/venv12/lib/python3.12/site-packages/renoir/debug.py", line 114, in make_traceback
    reraise(exc_type, exc_value, tb)
  File "/Users/aur1/venv12/lib/python3.12/site-packages/renoir/_internal.py", line 15, in reraise
    raise value.with_traceback(tb)
  File "/Users/aur1/Documents/develop/py4web/apps/aurixvault/templates/auth.html", line 75, in template
    [[=form]]
  NameError: name 'form' is not defined
 > Thread-6 > 22:44:13.875

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants