Mri*_*lla 6 python django django-forms form-fields
我的Django中有一个表单,看起来像这样:
class PersonnelForm(forms.Form):
"""
Form for creating a new personnel.
"""
username = forms.RegexField(
required=True, max_length=30, label=_("Name")
)
is_manager = forms.BooleanField(
required=True, label=_("Is Manager")
)
Run Code Online (Sandbox Code Playgroud)
我在我的网站的两个地方使用此表单.其中一个地方,我想显示表单及其除字段以外的所有is_manager字段,但我想将此字段的默认值设置为True.在另一个地方,我想显示表单及其所有字段,包括is_manager字段,我希望它的默认值为False.
我怎么能做到这一点?似乎是一件微不足道的事情,但我无法弄清楚.
谢谢.
Kla*_*ven 12
您可以使用表单的__init__方法来隐藏(或删除)字段,即
class PersonnelForm(forms.Form):
"""
Form for creating a 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3474 次 |
| 最近记录: |