在我的 ModelForm 中,我需要禁用 ForeignKey 字段。我试过这个东西,但选择仍然启用,正如我在 html 代码中看到的那样,属性没有添加到小部件中。这是我的代码 ModelForm 代码:
class ZayvkiAdminForm(ModelForm):
class Meta:
model = Zayvki
def __init__(self, *args, **kwargs):
if not kwargs.get('instance', None):
if not kwargs.get('initial', None):
kwargs['initial'] = {}
if not kwargs['initial'].get('nomer_zayvki', None):
kwargs['initial']['nomer_zayvki'] = get_request_number()
super(ZayvkiAdminForm, self).__init__(*args, **kwargs)
instance = getattr(self, 'instance', None)
if instance and instance.id:
self.fields['tipe_zayvki'].required = False
self.fields['tipe_zayvki'].widget.attrs['disabled'] = 'disabled'
self.fields['nomer_zayvki'].widget.attrs['readonly'] = True
更新:我不能使用exclude
或readonly
attrs ofModelAdmin
因为我需要用户能够在他创建对象时添加一些东西。但是当创建对象时,我不希望用户只是查看值而不是编辑它。