Django Admin TabularInline抱怨缺少字段

时间:2011-10-07 20:54:32

标签: python django django-admin

我有以下模型和TabularInline子类:

class SomeModel(models.Model):
    name = models.CharField(max_length=50)

class SomeModelInline(admin.TabularInline):
    model = SomeModel

class SomeOtherModelAdmin(admin.ModelAdmin):
    inlines = [SomeModelInline]

如果没有明确指定TabularInline的字段,Django的管理员会显示字段“id”和“name”。但是,当我尝试做的时候:

class SomeModelInline(admin.TabularInline):
    model = SomeModel
    fields  ['id','name']

Django抛出了ImproperlyConfigured异常:

'SomeModelInline.fields' refers to field 'id' that is missing from the form.

这里发生了什么?为什么我不能明确指定id,即使Django显然能够访问它?

1 个答案:

答案 0 :(得分:2)

ID是不可编辑的,默认情况下,内联显示可编辑字段,但您也可以显示不可编辑的字段

来自django docs

  

字段可以包含在ModelAdmin.readonly_fields中定义的值   显示为只读。

首先将'id'添加到readonly_fields,然后将其添加到字段