lis*_*saq 19 django datetime django-models
我有一个事件模型几乎总是在晚上10点开始,但有时可能会提前/晚开始.为了方便管理员,我希望时间默认为晚上10点,但如果需要可以改变; 无论如何都需要设置日期,因此它不需要默认值,但理想情况下它将默认为当前日期.
我意识到我可以使用datetime.now来完成后者,但是我可以(以及如何)将时间设置为特定的默认值吗?
更新:我得到的答案比我能弄清楚哪个(哪些)做了我想要完成的事情更快...我可能应该在我问之前进一步使用应用程序.在此期间感谢您的帮助!
tob*_*ych 14
从Django文档中Field.default:
字段的默认值.这可以是值或可调用对象.如果可调用,则每次创建新对象时都会调用它.
这样做:
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)
Run Code Online (Sandbox Code Playgroud)
如果您有兴趣将默认值设置为TimeField:https://code.djangoproject.com/ticket/6754
别:
start = models.TimeField(default='20:00')
Run Code Online (Sandbox Code Playgroud)
改为:
import datetime
start = models.TimeField(default=datetime.time(16, 00))
Run Code Online (Sandbox Code Playgroud)
Mik*_*one -2
像这样的东西吗?
import datetime
dt = datetime.now()
dt.hour = 22
dt.minute = 0
dt.second = 0
Run Code Online (Sandbox Code Playgroud)
没有上下文很难更具体。
| 归档时间: |
|
| 查看次数: |
16669 次 |
| 最近记录: |