conversion de datetime Field en chaîne dans django queryset.values_list ()
J'ai un queryset comme:
qs = MyModel.objects.filter(name='me').values_list('activation_date')
ici activation_date est DateTimeField dans les modèles.
Quand j'ai télécharger la feuille excel à partir de ce qs je ne reçois pas la date d'activation dans format de chaîne de caractères.
Comment puis-je convertir ce champ('activation_date') dans la chaîne ou comment enfermé dans qs?
source d'informationauteur Navera
Vous devez vous connecter pour publier un commentaire.
https://docs.djangoproject.com/en/dev/ref/models/fields/#datetimefield
Vous pouvez obtenir une représentation sous forme de chaîne d'un DateTimeField coulée directement:
Vous obtiendrez le résultat de ce genre (dans cet exemple, j'utilise datetime.datetime.maintenant() depuis un DateTimeField est représenté par le type datetime.datetime est le même comportement):
si vous voulez moins d'informations ou de mise en forme dans un autre mode que vous pouvez utiliser strftime() la fonction format. voir:
Si vous utilisez Postgresql, vous pouvez le faire comme ceci (format de la date options ici). La solution est à la base de données dépendantes, mais c'est sûr qu'il bat en boucle si une longue liste en Python terre après votre effectuer la requête.
Je suis sûr que MySQL est l'équivalent de la fonction en tant que Postgres est to_char, mais vous aurez à trouver que sur votre propre que je ne suis pas un MySQL gars.
extra
est obsolète dans Django 2.0C'est pourquoi je pense que la meilleure solution pour obtenir un stringified datetime est:
Le résultat est:
Aussi, je tiens à mentionner que vous pouvez mettre en forme aussi bien dans la façon que vous voulez comme:
Le résultat est:
Vous pouvez également convertir la date en queryset à l'aide de la chaîne
map
fonction. Exemple: