Wan*_*der 8 python django django-models django-orm django-admin
在Django 1.8中,让我们说我们有这个非常简单的模型:
class Log(models.Model):
remarks = models.TextField()
timestamp = models.DateTimeField(default=timezone.now)
Run Code Online (Sandbox Code Playgroud)
当我将模型实例保存到PostgreSQL数据库时,该timestamp字段将具有微秒.我注意到如果我尝试从Django管理员编辑特定的模型实例,该timestamp字段在保存回数据库时将失去微秒分辨率.
大多数应用程序不需要那么高的准确度,但对于需要这样的应用程序,能够消除这种分辨率损失的所有可能原因将是很好的.是否有任何已知的方法/功能来防止这种情况或这是一个错误/限制?
问题是默认的管理窗口小部件不支持微秒.您可以formfield_overrides使用DateTimeInput替代窗口覆盖窗口小部件,并指定包含微秒的格式.
from django.contrib import admin
from django.db import models
from django import forms
from .models import Log
class LogAdmin(admin.ModelAdmin):
formfield_overrides = {
models.DateTimeField: {'widget': forms.DateTimeInput(format='%Y-%m-%d %H:%M:%S.%f')},
}
admin.site.register(Log, LogAdmin)
Run Code Online (Sandbox Code Playgroud)
在您的情况下,因为它是一个时间戳,另一个选项是添加添加字段readonly_fields,以便它根本无法更改.
| 归档时间: |
|
| 查看次数: |
1204 次 |
| 最近记录: |