from django import forms
class Foo(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if condition:
self.fields.pop('field1')
class Meta:
model = SomeModel
fields = ('field1', 'field2', 'field3')
请注意,如果该字段是必需的,则这可能会导致表单验证失败
更好的方法可能是隐藏字段,而不是将其完全删除:
class Foo(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if condition:
form.fields['field1'].widget = forms.HiddenInput()
class Meta:
model = SomeModel
fields = ('field1', 'field2', 'field3')
您可以通过
__init__
修改表单字段:请注意,如果该字段是必需的,则这可能会导致表单验证失败
更好的方法可能是隐藏字段,而不是将其完全删除:
相关问题 更多 >
编程相关推荐