在我的编辑页面上,我试图允许用户编辑/更改他们输入的内容,但条件之一是他们无法编辑模型选择字段。
所以,我尝试了这个命令,但它不起作用。使用“readonly = True”用户仍然可以更改模型选择字段“下拉文件”,而使用“disabled = True”用户无法更改模型选择字段,但当他们尝试提交时会收到此错误:“此字段是必需的。”
myform.py
class NameForm(forms.ModelForm):
class Meta:
model=Name
fields = '__all__'
def __init__(self, *args, **kwargs):
super(NameForm, self).__init__(*args, **kwargs)
self.fields['names'].widget.attrs['disabled'] = 'True'
#self.fields['names'].widget.attrs['readonly'] = True
Run Code Online (Sandbox Code Playgroud)
有人有解决方案吗..?
提前致谢
我在我们的项目中也遇到了类似的情况并修复了它。因此,您可以尝试这样解决您的问题:
class NameForm(forms.ModelForm):
class Meta:
model = Name
fields = '__all__'
def __init__(self, *args, **kwargs):
super(NameForm, self).__init__(*args, **kwargs)
instance = getattr(self, 'instance', None)
# When in EDIT mode.
if instance and instance.id:
self.fields['names'].widget.attrs['disabled'] = 'True'
self.fields['names'].required = 'False'
def clean_names(self):
instance = getattr(self, 'instance', None)
# `disabled` field will have no form data,
# so we just use the previously saved value.
if instance and instance.pk:
return instance.names
else:
# When in CREATE mode.
return self.cleaned_data['names']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3550 次 |
| 最近记录: |