Crispy forms

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Salut,

Je suis en train de refaire tous mes formulaires avec Crispy forms. Pour gérer le nom du bouton d'envoi, j'utilisais un filtre :

1
<button type="submit">{{ family_id|createOrModify }}</button>

Si on édite le message, le bouton s'appelle Modifier, sinon Créer.

Et dans ma vue j'utilise ceci :

1
2
3
4
form = ManageFamily()
if family_id != 0:
        selected_family = Family.objects.filter(id=family_id).first()
        form = ManageFamily(instance=selected_family)

Y aurait-il moyen de faire quelque chose du genre dans mes forms :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
def __init__(self, *args, **kwargs):
        super(ManageFamily, self).__init__(*args, **kwargs)

        self.helper = FormHelper()
        self.helper.form_method = 'post'
        self.helper.form_action = '.'

        if ... c'est un edit...:
            self.helper.add_input(Submit('submit', _('Modify'))
        else:
            self.helper.add_input(Submit('submit', _('Create'))

Merci :)

+0 -0
Auteur du sujet

Salut,

J'ai trouvé une solution, il doit y avoir plus performant/propre, mais ça fonctionne :

1
2
3
4
if self.instance.name != '':
            self.helper.add_input(Submit('submit', _('Modify')))
        else:
            self.helper.add_input(Submit('submit', _('Create')))

Name étant un des champs de ce formulaire.

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte