我有带postgres的Django实例。默认情况下,使用此配置,Django中的DateTimeFields以毫秒保存。
# models.py
class LogModel(models.Model):
date_logged = models.DateTimeField(
"Logged",
auto_now_add=True
)
# admin.py
class LogAdmin(admin.ModelAdmin):
list_display = ('date_logged',)
search_fields = ('date_logged')
我想通过管理面板在 date_logged 字段中进行搜索,但不包含毫秒,也不想在具有自定义日期时间格式的情况下通过此字段进行搜索。有什么简单的方法吗?
答案 0 :(得分:0)
使用日期格式删除搜索之前日期的毫秒数
from .models import LogModel
import datetime
myDate = datetime.now()
formatedDate = myDate.strftime("%Y-%m-%d %H:%M:%S")
LogModel.objects.filter(date_logged=myDate)
https://docs.python.org/2/library/datetime.html
如果您无法通过用户输入或从前端获取日期格式,请尝试先创建一个日期对象,然后进行搜索
# datetime(year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]])
import datetime
formatedDate = datetime.datetime(date_from_user.year, date_from_user.month...)
# OR
formatedDate = date_from_user.strftime("%Y-%m-%d %H:%M:%S")
https://docs.python.org/2/library/datetime.html#datetime.datetime
https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior