没有秒的Django TimeField模型

标签 django django-models time

你好,
我正在尝试实现一个仅包含 HH:MM(即 16:46)格式的 TimeField 模型,我知道可以格式化常规 Python 时间对象,但我不知道如何使用 Django 管理它。

干杯

最佳答案

DateTime fields也将始终存储秒数;但是,您可以使用 time 轻松告诉模板只显示小时和分钟。筛选:

{{ value|time:"H:M" }}

其中“value”是包含日期时间字段的变量。

当然,你也可以借助其他技巧,比如在保存的同时从场上切出秒数;它只需要对处理表单的 View 中的代码进行少量更改,即可执行以下操作:
if form.is_valid():
  instance = form.save(commit=False)
  instance.nosecs = instance.nosecs.strptime(instance.nosecs.strftime("%H:%M"), "%H:%M")
  instance.save()

(注意:这是一个丑陋且未经测试的代码,只是为了提供想法!)

最后,您应该注意到管理员仍会在字段中显示秒数。
不过,这应该不是什么大问题,因为 admin 应该只由可以指示不使用该部分字段的用户使用。
如果您还想修补管理员,您仍然可以将自己的小部件分配给表单,从而让管理员使用它。当然,这将意味着额外的重大努力。

关于没有秒的Django TimeField模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1240278/

相关文章:

Django:存储所有应用程序通用功能的位置

Javascript 整数到时间字符串

java - Android 时区默认返回错误值

c# - 如何记录计算机之间的相对时间?

python - 如何在 Django 中设置站点框架

python - 使用 ManyToMany 字段获取或创建 Django 模型

Django-南: "! These migrations are in the database but not on disk:"

django - 如何访问 Django 的 field.choices?

python - Django ModelForm显示外键的模型字段而不是对象ID

python - Django django.test 客户端post请求