我有这样的模特
class Timer(models.Model):
"""Represents a timing system"""
start_time = models.DateTimeField(default=datetime.datetime.now())
end_time = models.DateTimeField()
并以此为模型的形式
class JobForm(forms.ModelForm):
class Meta:
exclude = ['slug','author','duration',]
model = Job
当我想添加一些定时信息时出现麻烦,这意味着我必须以长格式输入
DD-MM-YYYY HH:MM:SS
时间将在发生的同一天实时添加,因此长格式看起来很浪费精力,我宁愿这样做
HH:MM
我无法使用model.TimeField,因为我将计算开始时间和结束时间之间的持续时间,并且有人可能会通过定时睡眠或其他人知道跨过午夜。
我如何允许在HH:MM中输入并将其作为datetimefield(最终经过一些努力)?希望代码假定与当前日期相同的日期给HH:MM
最佳答案
在查看表单文档后,这是iv决定做的,因为我不明白@cclerville的建议(也许django很差?)
开始:
在我的forms.py中
class MyDateTimeField(forms.Field):
def to_python(self, value):
# Return an empty list if no input was given.
if not value:
return []
import datetime
today = datetime.date.today()
hhmm = value.split(':')
val= datetime.datetime.combine(datetime.date.today(), datetime.time(int(hhmm[0]),int(hhmm[1])))
return val
以及表单本身:
class JobForm(forms.ModelForm):
end_time = MyDateTimeField()
关于python - 在Django DateTimeField中允许HH:MM类型的输入,而不是长格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14882648/