在表单.py在
INPUT_FORMAT = (
('%d/%m/%Y','%m/%d/%Y')
)
class ReportDatetimeForm(forms.ModelForm):
date = forms.DateField(input_formats = INPUT_FORMAT,
widget=forms.DateInput()
class Meta:
model = Report
fields = ['date']
这是我的表单,以两个不同的日期作为输入格式。While以这种格式给出输入日期%m/%d/%Y'
保存时日期和月份可以交换数据库。那个影响我的申请。所以我想将这两种输入格式保存为一种格式,即yyyy-mm-dd
,那么用户输入什么格式的输入格式,给定格式应以上述格式保存。在
我想知道如何在表单.py以单一格式将日期保存在数据库中。在
谢谢
存储在数据库中的实际日期与进入字段的输入文本无关。日期存储为日期对象,而不是任意字符串。在
您所面临的问题是,列出为有效的两种格式有时会为同一输入生成不同的日期对象。它们是模棱两可的。在
如果用户在表单字段中输入字符串“01/02/1990”,实际日期是多少?是1990年2月1日,还是1990年1月2日?在您的特定实现中,选择的日期将是第一种格式:2月1日。它将按顺序检查每个日期格式,并尝试解析日期。如果成功,则创建日期并保存。如果不成功,它将尝试每个连续的格式。在
要么选择一种格式,要么选择一种永远不含糊的多种格式。javascript日历选择器的使用非常有用,甚至可以为日期的各个部分单独输入文本。在
您应该做的是在django表单中只允许ISO8601日期格式“YYYY-MM-DD”。在UI中,只要在发送到服务器之前将日期(使用javascript)转换为“YYYY-MM-DD”格式,就可以允许用户以他们喜欢的任何格式输入日期。但是你应该做的是有3个单独的文本输入-一个是日,月,年。在
相关问题 更多 >
编程相关推荐