django 使 ModelChoiceField 不可编辑

django make ModelChoiceField non-editable

我有一个带有 ModelChoiceField 的 ModelForm,我需要确保初始值应该保持固定,我们不能 select 任何其他值。这意味着,使该字段不可编辑、保留或诸如此类。我认为,将其设为 CharField 或仅设为 Field 在这里无济于事,因为稍后我需要来自该字段的对象进行验证和处理。 有人可以帮忙吗?

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

原来,我需要下面的代码:

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

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

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

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

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