gpt4 book ai didi

python - 有条件地显示和隐藏表单字段并设置字段值

转载 作者:太空狗 更新时间:2023-10-29 22:11:51 26 4
gpt4 key购买 nike

我的 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")
)

我在网站的两个地方使用了这个表单。其中一个地方,我想显示表单及其除 is_manager 字段之外的所有字段,但我想将此字段的默认值设置为 True。在另一个地方,我想显示表单及其所有字段,包括 is_manager 字段,我希望它的默认值为 False。

我怎样才能做到这一点?似乎是一件微不足道的事情,但我想不通。

谢谢。

最佳答案

您可以使用表单的 __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)

关于python - 有条件地显示和隐藏表单字段并设置字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6717249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com