首页 > 解决方案 > 如何为我的 django datetimefield 设置默认小时

问题描述

我试图将默认时间设置为我的 django 日期时间字段,我datetime-local在我的输入中使用,但它显示当前时间,我想将默认时间设置为 12:00 PM 并且可以更改,我尝试了这个但没有用

from datetime import datetime

def set_default_time_checkout():
    now = datetime.now()
    new_time = now.replace(hour=12, minute=0, second=0, microsecond=0)
    return new_time

class Booking(models.Model):
    check_in = models.DateTimeField(default=timezone.now)
    check_out = models.DateTimeField(default=set_default_time_checkout,blank=True,null=True)

但不起作用,这是我的 forms.py

class BookingForm(forms.ModelForm):
    check_in = forms.DateTimeField(required=True,input_formats=['%Y-%m-%dT%H:%M','%Y-%m-%dT%H:M%Z'],widget=forms.DateTimeInput(attrs={'type':'datetime-local'}))
    check_out = forms.DateTimeField(initial=set_default_time_checkout, required=False,input_formats=['%Y-%m-%dT%H:%M','%Y-%m-%dT%H:M%Z'],widget=forms.DateTimeInput(attrs={'type':'datetime-local'}))

最初的时间也不起作用,modelform请问有可能吗?如何实现呢?我从问题中尝试了这些解决方案,但它们都 不起作用我可以为 Django 日期时间字段设置特定的默认时间吗? 提前致谢

标签: djangopython-datetime

解决方案


这可能有效:

import datetime

defualt=datetime.time(12, 0, 0)

datetime.time() 的输出有小时、分钟和秒实例


推荐阅读