Разбор ввода данных в Django? - PullRequest
6 голосов
/ 03 мая 2010

Я пытаюсь получить дату для события от пользователя. Ввод - это просто ввод HTML-текста. Моя главная проблема в том, что я не знаю, как разобрать дату.

Если я пытаюсь передать необработанную строку, я получаю TypeError, как и ожидалось.

Есть ли в Django какие-либо модули анализа даты?

Ответы [ 3 ]

7 голосов
/ 03 мая 2010

Если вы используете django.forms, посмотрите на DateField.input_formats . Этот аргумент позволяет определить несколько форматов даты. DateField пытается разобрать необработанные данные в соответствии с этими форматами по порядку.

6 голосов
/ 03 мая 2010

Джанго, так сказать, не делает Python. Кажется, я здесь не прав, как показывает ответ uptimebox.

Скажем, вы анализируете эту строку: 'Ср 21 апреля 19:29:07 +0000 2010' (Это из JSON API Twitter)

Вы бы проанализировали его в объекте datetime, например:

import datetime

JSON_time = 'Wed Apr 21 19:29:07 +0000 2010'
my_time = datetime.datetime.strptime(JSON_time, '%a %b %d %H:%M:%S +0000 %Y')

print type(my_time)

Вы получите это, подтверждая, что это объект datetime:

<type 'datetime.datetime'>

Более подробную информацию о strptime() можно найти здесь .

0 голосов
/ 03 апреля 2017

(в 2017 году) теперь вы можете использовать django.utils.dateparse

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...