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
.
On en veux plus !!! par ici je vous met dans mes favoris, et vous dit a bientot.