DateTimeField在管理系统中未显示
为什么我的“日期”字段在管理系统中不显示呢?
在我的admin.py文件里,我写了
from django.contrib import admin
from glasses.players.models import *
admin.site.register(Rating)
而且评分模型里有一个叫“日期”的字段,长得像这样
date = models.DateTimeField(editable=True, auto_now_add=True)
可是,在管理系统里,这个字段就是不显示,尽管editable
设置为True
。
有没有人知道这是为什么呢?
10 个回答
25
重要提示:
如果你真的需要这样做(就像我一样),你可以通过立即将字段设置为“可编辑”来绕过这个问题,定义字段的方法如下:
class Point(models.Model):
mystamp=models.DateTimeField("When Created",auto_now_add=True)
mystamp.editable=True
这样做会让这个字段变得可编辑,你就可以实际修改它。至少在使用mysql数据库时,这个方法似乎运行得很好。不过我不能确定其他类型的数据库是否会让这些数据在数据库中变得不可更改,从而在尝试编辑时出现问题,所以请谨慎使用。
262
如果你真的想在管理面板中看到日期,可以在admin.py文件中添加readonly_fields
:
class RatingAdmin(admin.ModelAdmin):
readonly_fields = ('date',)
admin.site.register(Rating,RatingAdmin)
你指定的任何字段都会在可编辑字段之后最后添加。如果想控制字段的顺序,可以使用fields
选项。
更多信息可以查看Django文档。