form – Sam & Max http://sametmax.com Du code, du cul Wed, 30 Oct 2019 15:34:04 +0000 en-US hourly 1 https://wordpress.org/?v=4.9.7 32490438 Exclure un champ d’un formulaire parent avec Django http://sametmax.com/exclure-un-champ-dun-formulaire-parent-avec-django/ http://sametmax.com/exclure-un-champ-dun-formulaire-parent-avec-django/#comments Sun, 15 Jul 2012 13:14:41 +0000 http://sametmax.com/?p=1130 Cas simple: vous héritez d’un formulaire, mais il y a un champ que vous ne souhaitez pas utiliser. Malheureusement, il n’y a aucun hook dans Django permettant d’exclure ce champ.

Mais bonne nouvelle, il suffit de retirer le champ du dictionnaire self.field.

Exemple, la lib django-contact-form me donne:

class ContactForm(forms.Form):

    name = forms.CharField(max_length=100,
                           widget=forms.TextInput(attrs=attrs_dict),
                           label=u'Your name')
    email = forms.EmailField(widget=forms.TextInput(attrs=dict(attrs_dict,
                                                               maxlength=200)),
                             label=u'Your email address')
    body = forms.CharField(widget=forms.Textarea(attrs=attrs_dict),
                              label=u'How can we improve %s?' % (Site.objects.get_current().name))

Et je veux le même formulaire, sans le champ name:

class SimpleContactForm(ContactForm):
    def __init__(self, *args, **kwargs):
        super(SimpleContactForm, self).__init__(*args, **kwargs)
        self.fields.pop('name')

Il faut bien sur s’assurer que name n’est utilisé nul part dans une des méthodes de ConctactForm.

]]>
http://sametmax.com/exclure-un-champ-dun-formulaire-parent-avec-django/feed/ 1 1130