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)
默认情况下,在管理界面中,created和modified字段不会显示在版本页面中my_app/myclass/id.
我尝试了这个hack来强制显示编辑管理页面中的created和modified字段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)
任何想法如何在版本管理界面中显示created和modified字段MyClass?
注1: MyClass是包含许多字段的模型,包括ManyToMany字段.我可以显示除基类之外的所有字段created和modified字段TimeStampedModel.
注2:参考中的管理页面是一行的编辑页面:my_app/myclass/id
解决方案是使用以下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)
| 归档时间: |
|
| 查看次数: |
1647 次 |
| 最近记录: |