将Django required表单字段更改为Fals

2024-10-04 03:16:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图根据另一个字段的输入将表单字段的必需项更改为“False”。在

形式:

class MyNewForm(forms.Form):

def __init__(self, *args, **kwargs):
    self.users = kwargs.pop('users', None)
    super(MyNewForm, self).__init__(*args, **kwargs)


    self.fields['name'] = forms.CharField(
        max_length=60,
        required=True,
        label="Name *:",
        widget=forms.TextInput(
            attrs={'class' : 'form-control', 'placeholder': 'Name'})
    )

def clean_this_other_field(self):

    # change required field
    name = self.fields['name']
    print name.required
    name.required=False
    print name.required

打印结果:

正确

错误

因此,所需字段将更改为“False”,但当表单页重新加载时,它将恢复为“True”

有什么建议吗?在

EDIT - Problem solved

对于有类似问题的人来说:

^{pr2}$

Remove是表单中的第一个字段,因此在Remove字段上添加这个clean可以解决这个问题。在


Tags: nameselffalsetruefieldsinitdefrequired
1条回答
网友
1楼 · 发布于 2024-10-04 03:16:04

当这个问题出现时,你能给出更多的代码吗?在

如果您使用ModelForm,您可以执行以下操作:

class YourForm(forms.ModelForm):    
    def __init__(self, *args, **kwargs):
        super(YourForm, self).__init__(*args, **kwargs)
        self.fields['name'].required = True

    class Meta:
        model = YouModel
        fields = (...)

Django Model Forms - Setting a required field

U也可以使用widget添加所需的内容:

^{pr2}$

相关问题 更多 >