0
當添加一個額外的表單域的readonly_fields
一個ModelAdmin
打開管理頁面時,我的模型的實例中,我得到一個ImproperlyConfigured
錯誤:如何將modeladmin額外的表單域添加到readonly_fields?
TaskClosedAdmin.readonly_fields[0], 'extra_admin_field' is not a callable or an attribute of 'TaskClosedAdmin' or found in the model 'TaskClosed'.
我如何添加額外的領域readonly_fields?
編輯
我也試過在TaskClosedAdmin
的get_form()
,以爲字段可能super(TaskClosedAdmin, self).get_form(request, obj, **kwargs)
後更新:
def get_form(self, request, obj=None, **kwargs):
form = super(TaskClosedAdmin, self).get_form(request, obj, **kwargs)
self.readonly_fields = obj._meta.get_all_field_names()
self.readonly_fields.append('extra_admin_field')
return form
,我仍然得到關於extra_admin_field
不存在同樣的錯誤..我可以在哪裏添加它?
models.py
class Task(models.Model):
# some fields
class TaskToConfirm(Task):
class Meta:
proxy = True
admin.py
class TaskForm(forms.ModelForm):
extra_admin_field = forms.CharField(max_length=10)
class Meta:
model = Task
def __init__(self, *args, **kwargs):
super(TaskForm, self).__init__(*args, **kwargs)
# set extra_admin_field value
class TaskAdmin(admin.ModelAdmin):
form = TaskForm
class TaskClosedAdmin(TaskAdmin):
readonly_fields = ('extra_admin_field',)
由於ModelAdmin有一個readonly_fields屬性,我猜在Django中已經存在類似的東西。我只想添加額外的字段到這個readonly_fields。 – jul 2013-03-12 08:58:38
好吧你是對的,extra_admin_field是一個表單字段,而不是模型字段,所以我不能將它添加到modeladmin readonly_fields。 – jul 2013-03-12 09:46:50