Je suis tombé sur une situation intéressante en utilisant cette classe:
class Company(models.Model):
date = models.DateField()
time = models.TimeField()
c = Company(date=datetime.datetime.now(), time=datetime.datetime.now())
Django décide d'utiliser DATETIME_INPUT_FORMATS
Défini dans le fichier formats.py. Ce qui a du sens, car je passe un datetime.now()
aux deux champs.
Je pense que je pourrais faire Django utiliser respectivement DATE_INPUT_FORMATS
Et TIME_INPUT_FORMATS
Si je ne transmettais que la date et l'heure actuelles.
Quelque chose comme ça:
c = Company(date=datetime.date.now(), time=datetime.time.now())
Mais cela jette évidemment une exception, car il n’existe pas maintenant comme ça. Y a-t-il un moyen différent d'y parvenir?
Pour la date, vous pouvez utiliser datetime.date.today()
ou datetime.datetime.now().date()
.
Pour le moment, vous pouvez utiliser datetime.datetime.now().time()
.
Cependant, pourquoi avoir des champs séparés pour ceux-ci en premier lieu? Pourquoi ne pas utiliser un seul DateTimeField
?
Vous pouvez toujours définir des fonctions d'assistance sur le modèle qui renvoient le .date()
ou .time()
plus tard si vous ne voulez que l'une ou l'autre.
import datetime
datetime.datetime.now().strftime ("%Y%m%d")
20151015
Pour le moment
from time import gmtime, strftime
showtime = strftime("%Y-%m-%d %H:%M:%S", gmtime())
print showtime
2015-10-15 07:49:18
import datetime
datetime.date.today() # Returns 2018-01-15
datetime.datetime.now() # Returns 2018-01-15 09:00