Django: How to remove fields from a Form

Let’s say you want to inherit from the following form:

class SuperLongForm(forms.Form):
    first_name = ...
    last_name = ...
    ...

And that you want to recreate the same form, but without the last_name field. All you have to do is to remove the field from the fields dict:

class FirstNameOnlyForm(SuperLongForm):
    def __init__(self, *args, **kwargs):
        super(FirstNameOnlyForm, self).__init__(*args, **kwargs)
        self.fields.pop('last_name')

Keep in mind that this is not the smartest way to do thing. Two forms inheriting from a base form with the first_name field would be a much smarter decision.

One comment on “Django: How to remove fields from a Form

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax