Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Display created/modified fields of django_extensions in admin interface

I have a class based on TimeStampedModel from django-extentions:

from model_utils.models import TimeStampedModel


class MyClass(TimeStampedModel):
    pass

By default in the admin interface the created and modified fields are not displayed in the edition page my_app/myclass/id.

I tried this hack to force the display of the created and modified fields in the edit admin page for 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)

But this raised the following exception:

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

Any idea how can I display the created and modified fields in the MyClass edition admin interface?

Note 1: MyClass is a model with a lot of fields including ManyToMany fields. I can display all the fields except the created and modified fields from the base class TimeStampedModel.

Note 2: The admin page in reference is the edition page of a row: my_app/myclass/id

like image 1000
Julio Avatar asked Mar 18 '23 14:03

Julio


1 Answers

The solution is to use the readonly_fields attribute:

from django.contrib import admin

from my_app.models import MyClass


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

admin.site.register(MyClass, MyClassAdmin)
like image 57
Julio Avatar answered Apr 06 '23 04:04

Julio