Obtenir la date actuelle et l’heure actuelle seulement respectivement

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