我想在编辑对象时禁用某些字段。我已经设法对文本字段执行此操作,但对于下拉列表(选择列表)来说这是不可能的。
我正在表单的构造函数中执行此操作。
class OrderModelForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(forms.ModelForm, self).__init__(*args, **kwargs)
instance = getattr(self, 'instance', None)
if instance and instance.pk:
self.fields['description'].widget.attrs['readonly'] = True
self.fields['city_code'].widget.attrs['disabled'] = True
请注意我是如何用不同的方式为两者制作的keywords,但我不能为我做这件事customer_id
field.
将属性设置为disabled
or readonly
只影响小部件的显示方式。它实际上并不能阻止某人提交更改这些字段的发布请求。
这可能是一个更好的覆盖方法get_readonly_fields https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_readonly_fields为你的模型。
class OrderModelAdmin(admin.Model
def get_readonly_fields(self, request, obj=None):
if self.obj.pk:
return ['description', 'city_code', 'customer']
else:
return []
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)