Skip to content

Conversation

christophehenry
Copy link
Contributor

🎯 Objectif

L'API de rendu des formulaires arrivée avec Django 4.2 permet un rendu des formulaires plus souples. Cette PR intègre mieux cette API dans django DSFR en supprimant le besoin de {% dsfr_form_field %}. Les champs peuvent maintenant se rendrent seuls avec {{ field.as_field_group }}.

Cette PR propose aussi une façon d'unifier la déclaration d'attributs spécifiques au DSFR. Typiquement, la classe du <div> qui regroupe l'input et son label, qui est parfois appelé group_class ou extra_classes dans le DSFR. Cette PR propose de tout regrouper sous le nom dsfr_wrapper_class porté par le widget. Elle ajoute également dsfr_input_class pour la classe de base de l'input et dsfr_label_attrs pour les attritbuts du label.

À l'avenir, ces attributs devraient pouvoir aussi être surchargés dans le formulaire de la façon suivante:

class TestForm(DsfrBaseForm):
    test_field = forms.CharField()

    class Meta:
        dsfr_wrapper_class = {"test_field": "fr-input-group"}

de la même manière qu'il est actuellement possible de surcharger les widget dans les ModelForm. Ce n'est pas implémenté par cette PR pour qu'elle ne soit pas trop grosse.

@christophehenry christophehenry force-pushed the toggle-input branch 2 times, most recently from 6fd5d2b to 3c64784 Compare September 24, 2025 07:41
Override BoundField to allow fields to be rendered using '{{ field.as_field_group }}' instead
of relying on template tags. This eliminates the need for '{% dsfr_form_field %}'.

Also implement Toggle form field
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.

1 participant