django使ModelChoiceField不可编辑

时间:2015-02-02 17:48:33

标签: python django django-forms

我有一个带有ModelChoiceField的ModelForm,我需要确保初始值应该保持固定,我们不能选择任何其他值。这意味着,使这个字段不可编辑,保存或像这样。我认为,将它设为CharField或者只是Field在这里将无济于事,因为我需要稍后来自该字段的对象进行验证和处理。 请有人帮忙吗?

 self.fields['field_name'].widget.attrs['readonly'] = True

2 个答案:

答案 0 :(得分:2)

原来,我需要以下代码:

self.fields['field_name'].widget.attrs['disabled'] = 'disabled'

答案 1 :(得分:0)

此选项将在您提交表单时从表单字段中删除实例。

self.fields['field_name'].widget.attrs['disabled'] = 'disabled'

使用该选项,您将禁用要编辑的de字段,并且可以转换要保存到数据库中的init实例。

algorithm = forms.ModelChoiceField(label='Algoritmo',queryset=Algorithm.objects.all(),to_field_name="name",widget=forms.TextInput(attrs={'readonly':'readonly'}))