在深入研究了admin、model 字段和form 字段代码之后,我相信执行我想要的唯一方法是创建一个自定义模型字段:
models.py
from django.db import models
from widgets import ApproveStopWidget
class ApproveStopModelField(models.DateTimeField):
pass
class Stop(models.model):
# Other fields
approve_ts = ApproveStopModelField('Approve place', null=True, blank=True)
admin.py
from widgets import ApproveStopWidget
from models import ApproveStopModelField
class StopAdmin(admin.ModelAdmin):
formfield_overrides = {
ApproveStopModelField: {'widget': ApproveStopWidget }
}
它完成了工作。
暂时,我不会回答这个问题,因为我习惯于忽略显而易见的事情。也许一些 Django smartypants 有更好的解决方案。