Django将值设置为POST表单

时间:2015-12-07 18:28:33

标签: python django html5

我的views.py看起来像那样

def add_note(request):

registered = False
user = User.objects.get(username=request.user.get_username())
if request.method == 'POST':
    note_form = NoteForm(data=request.POST)
    if note_form.is_valid():
        note = note_form.save()
        note.save()
        registered = True
    else:
         print(note_form.errors)

else:
    pass

return render(request, 'note.html', {'note_form': NoteForm, 'registered': registered})

HTML我使用<td><input type="datetime-local" id="id_data" name="data" ></td>

此输入的数据无效,因为格式为2015-12-20T12:15,应为2015-12-20 12:15

我的问题是:

  1. 可以在输入中更改数据格式吗?我需要这样的格式2015-12-20 12:15T切换到SPACE
  2. 如果不是Data
  3. views.py的更改值

2 个答案:

答案 0 :(得分:0)

您可以在视图中轻松更改嵌入python日期函数的日期格式。例如,您可以使用 strptime strftime 这两个日期时间功能。

import datetime

new_date = datetime.datetime.strptime('07/12/2015', '%d/%m/%Y').strftime('%Y-%m-%d')

strptime收到您的请求日期,strftime将该日期转换为自定义格式。

答案 1 :(得分:0)

您可以在NoteForm中的表单字段中指定日期时间字段接受的格式,以便您可以接受默认格式:

data = forms.DateTimeField(input_formats=['%Y-%m-%d %H:%M', '%Y-%m-%dT%H:%M'])

如果您坚持使用所需的格式,则可能需要将前端input更改为某种格式。