reactpy-django icon indicating copy to clipboard operation
reactpy-django copied to clipboard

`django_form` component

Open Archmonger opened this issue 3 years ago • 1 comments
trafficstars

Old Behavior

Currently, there is no existing way to easily utilize Django Forms (and django-crispy-forms) within ReactPy.

A lot of Django users have the expectation that they can use battle-tested form validation, so this is an important feature.

Implementation Details

Create a reactpy_django.components.django_form that calls Form.render(), then use html_to_vdom to convert into a ReactPy component.

By default, django_form should intercept the on_submit event for html.form to perform Django validation.

@component
def my_component():
    return html.div(
        django_form(MyDjangoForm),
    )

We might need to be extra attentive towards some custom form fields, such as django-colorfield and django-ace, which utilize script tags directly within the form body.

Additionally, some anchor link buttons, such as those within django-crispy-forms, may require special attention as well. For example, should we automatically use reactpy_router to intercept these links? This automatic behavior might need to be a configurable setting within the component.

Archmonger avatar Jan 09 '22 02:01 Archmonger

Blocked on

  • https://github.com/reactive-python/reactpy/issues/1186
  • https://github.com/reactive-python/reactpy/issues/1188

Archmonger avatar Jan 14 '24 09:01 Archmonger