Django 1.7 是否有自动将日期时间字段从手动 HTML 形式转换为模型的方法?
Does Django 1.7 has a automatic way to convert datetime fields from manual HTML form to model?
我正在编写一个简单的应用程序,它有一个带有字段的表单,该字段以 'd/m/Y' 格式保存 birth_date。由于我们在巴西使用的日期格式,我必须使用以下代码转换日期以匹配格式 'Y-m-d':
arr_date = request.POST['birth_date'].split('/')
author.birth_date = datetime.date(int(arr_date[2]), int(arr_date[1]), int(arr_date[0]))
表单的字段是:
<input type="date" name="birth_date" value="{{ author.birth_date|date:'d/m/Y' }}"/>
是否有 "fancier" 方法来进行这种转换?
您可以使用标准 python 库中的 datetime.strptime()
:
from datetime import datetime
dt = datetime.strptime(str_date, '%d/%m/%Y')
catavaran 答案有效,但您也可以使用 DJANGO_INPUT_FORMATS 设置 https://docs.djangoproject.com/en/1.7/ref/settings/#date-input-formats ,如果您想接受多种日期格式或在您的应用程序中使用多种表格,这将对您有所帮助。
如果你想显示日期你可以受益https://docs.djangoproject.com/en/1.7/ref/settings/#date-format
我正在编写一个简单的应用程序,它有一个带有字段的表单,该字段以 'd/m/Y' 格式保存 birth_date。由于我们在巴西使用的日期格式,我必须使用以下代码转换日期以匹配格式 'Y-m-d':
arr_date = request.POST['birth_date'].split('/')
author.birth_date = datetime.date(int(arr_date[2]), int(arr_date[1]), int(arr_date[0]))
表单的字段是:
<input type="date" name="birth_date" value="{{ author.birth_date|date:'d/m/Y' }}"/>
是否有 "fancier" 方法来进行这种转换?
您可以使用标准 python 库中的 datetime.strptime()
:
from datetime import datetime
dt = datetime.strptime(str_date, '%d/%m/%Y')
catavaran 答案有效,但您也可以使用 DJANGO_INPUT_FORMATS 设置 https://docs.djangoproject.com/en/1.7/ref/settings/#date-input-formats ,如果您想接受多种日期格式或在您的应用程序中使用多种表格,这将对您有所帮助。
如果你想显示日期你可以受益https://docs.djangoproject.com/en/1.7/ref/settings/#date-format