2011-10-07 93 views
1

我有以下的模型和TabularInline子类:Django管理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”和“名称”。然而,当我尝试这样做:

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显然能够访问它?

回答

2

ID是不可编辑,默认情况下在线显示可编辑的字段,但你可以展现不可编辑的字段,以及

django docs

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

所以先加“身份证”到readonly_fields,然后将其添加到域

+0

这不是真的是我问,但它确实让我来解决此问题。 – Cerin