python - Conditionally show and hide a form field and set the field value -
python - Conditionally show and hide a form field and set the field value -
i have form in django looks this:
class personnelform(forms.form): """ form creating new personnel. """ username = forms.regexfield( required=true, max_length=30, label=_("name") ) is_manager = forms.booleanfield( required=true, label=_("is manager") ) i utilize form in 2 places in site. 1 1 of places, i'd display form , of fields except is_manager field set default value of field true. in other place, i'd display form , of fields including is_manager field , have default value of false.
how can accomplish this? seems trivial thing can't figure out.
thanks.
you utilize form's __init__ method hide (or delete) field, i.e.
class personnelform(forms.form): """ form creating new personnel. """ username = forms.regexfield( required=true, max_length=30, label=_("name") ) is_manager = forms.booleanfield( required=true, label=_("is manager") ) def __init__(self, *args, **kwargs): delete_some_field = kwargs.get('delete_some_field', false) if 'delete_some_field' in kwargs: del kwargs['delete_some_field'] super(personnelform, self).__init__(*args, **kwargs) if delete_some_field: del self.fields['is_manager'] # or self.fields['is_manager'].widget = something_else #views.py form = personnelform(...., delete_some_field=true) python django django-forms form-fields
Comments
Post a Comment