
[英]In Django ,how can I save or update datetime of datetime field with db time?
[英]Can I set a specific default time for a Django datetime field?
我有一个 model,用于几乎总是在晚上 10:00 开始的活动,但有时可能会提前/延迟开始。 为了让管理变得简单,我希望时间默认为晚上 10 点,但如果需要可以更改; 无论如何都需要设置日期,因此它不需要默认值,但理想情况下它会默认为当前日期。
我意识到我可以使用 datetime.now 来完成后者,但是我是否可以(以及如何)将时间设置为特定的默认值?
更新:我得到答案的速度比我弄清楚哪个(哪些)能完成我想要完成的事情要快......我可能应该在问之前进一步了解该应用程序。 感谢您在此期间的帮助!
从Field.default
的Django文档:
字段的默认值。 这可以是值或可调用对象。 如果可调用,则每次创建新对象时都会调用它。
这样做:
from datetime import datetime, timedelta
def default_start_time():
now = datetime.now()
start = now.replace(hour=22, minute=0, second=0, microsecond=0)
return start if start > now else start + timedelta(days=1)
class Something(models.Model):
timestamp = models.DateTimeField(default=default_start_time)
如果您有兴趣将默认值设置为TimeField : https : //code.djangoproject.com/ticket/6754
别:
start = models.TimeField(default='20:00')
改为:
import datetime
start = models.TimeField(default=datetime.time(16, 00))
你见过这个吗? https://docs.djangoproject.com/en/dev/ref/models/fields/#default
那可能就是你要找的东西。
这里也讨论了: Django模型中字段的默认值
datetime.time(16, 00)
不起作用。
如果您尝试获取当前时间或datetime.time(your_date_time)
请使用datetime.time(datetime.now())
datetime.time(your_date_time)
其中your_date_time = datetime.datetime对象
导入日期时间
default_time = datetime.datetime.now().time()
time_of_visit = models.TimeField(默认=默认时间)
它会工作正常
像这样的东西?
import datetime
dt = datetime.now()
dt.hour = 22
dt.minute = 0
dt.second = 0
没有背景,很难更具体。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.