2016-05-15 71 views
0

Django管理沒有表現出抽象基類領域

class BaseModelMixin(models.Model): 
    class Meta: 
     abstract = True 
    uuid = models.UUIDField(default=uuid4, editable=False, db_index=True) 
    created_on = models.DateTimeField(default=now, editable=False, blank=True) 
    updated_on = models.DateTimeField(default=now, editable=False, blank=True) 

class Something(BaseModelMixin): 
    whatever = models.TextField(blank=True, null=True) 

class SomethingElse(BaseModelMixin): 
    whoever = models.TextField(blank=True, null=True) 
在管理網站

,對於每一個東西,我看什麼,但不是的uuid,created_on,或updated_on。我一定會錯過一些明顯的東西......如果django管理員沒有自動顯示這些字段,那將是令人驚訝的。

我一定要抽象;我不想要一個額外的表格,我希望uuid,created_on,updated_on字段位於具體的類表中,而且它們是。他們只是不顯示在django管理網站。

我在做什麼錯?


Anoop的回答是部分正確:

class BaseModelMixinAdmin(admin.ModelAdmin): 
    readonly_fields=('uuid','created_on','updated_on') 

但隨後也:

admin.site.register(Something, BaseModelMixinAdmin) 
admin.site.register(SomethingElse, BaseModelMixinAdmin) 

...這是一個有點刺鼻,我要做到這一點在所有的,但哦好吧,它不是那麼糟糕......

+0

'editable = False'字段默認情況下不顯示。考慮這個http://stackoverflow.com/q/3967644/1925257 – xyres

回答

1

如果你只是想在管理面板中看到不可編輯的字段。在模型中使用read only fields管理員

class BaseModelMixinAdmin(admin.ModelAdmin): 
    readonly_fields=('uuid',)