我有以下模型和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显然能够访问它?
答案 0 :(得分:2)
ID是不可编辑的,默认情况下,内联显示可编辑字段,但您也可以显示不可编辑的字段
字段可以包含在ModelAdmin.readonly_fields中定义的值 显示为只读。
首先将'id'添加到readonly_fields,然后将其添加到字段