Je suis tombé sur une situation intéressante.
class Company(models.Model): date = models.DateField() time = models.TimeField()
Lorsque vous utilisez cette classe:
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 est logique, car je passe un datetime.now () aux deux champs.
Je pense que je pourrais faire en sorte que Django utilise 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 une exception car maintenant n’existe pas comme ça. Y a-t-il une autre façon d’y parvenir?
Merci beaucoup,
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’un 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