在管理界面中显示django_extensions的创建/修改字段

Jul*_*lio 4 django django-admin django-extensions

我有一个基于类的TimeStampedModel来自django-extentions:

from model_utils.models import TimeStampedModel


class MyClass(TimeStampedModel):
    pass
Run Code Online (Sandbox Code Playgroud)

默认情况下,在管理界面中,createdmodified字段不会显示在版本页面中my_app/myclass/id.

我尝试了这个hack来强制显示编辑管理页面中的createdmodified字段MyClass:

from django.contrib import admin

from my_app.models import MyClass


class MyClassAdmin(admin.ModelAdmin):
    fields = MyClass._meta.get_all_field_names()

admin.site.register(MyClass, MyClassAdmin)
Run Code Online (Sandbox Code Playgroud)

但这引发了以下异常:

Exception Type:     FieldError
Exception Value:    Unknown field(s) (modified, created) specified for MyClass. Check fields/fieldsets/exclude attributes of class MyClassAdmin.
Run Code Online (Sandbox Code Playgroud)

任何想法如何在版本管理界面中显示createdmodified字段MyClass

注1: MyClass是包含许多字段的模型,包括ManyToMany字段.我可以显示除基类之外的所有字段createdmodified字段TimeStampedModel.

注2:参考中的管理页面是一行的编辑页面:my_app/myclass/id

Jul*_*lio 7

解决方案是使用以下readonly_fields属性:

from django.contrib import admin

from my_app.models import MyClass


class MyClassAdmin(admin.ModelAdmin):
    readonly_fields = ('created', 'modified', )

admin.site.register(MyClass, MyClassAdmin)
Run Code Online (Sandbox Code Playgroud)