Django - ne peut pas obtenir une fonction de temps (horaire, datetime) fonctionne correctement, Se ErrorName message: mondial de nom n'est pas défini
Je suis un Django débutant,
Je suis en suivant un tutoriel, et j'ai dû créer deux modèles présentés ci-dessous:
import datetime
from django.db import models
from django.utils import timezone
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __unicode__(self):
return self.question
def was_published_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=1)
class Choice(models.Model):
poll = models.ForeignKey(Poll)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField()
def __unicode__(self):
return self.choice_text
Le code suivant est à partir de ce tutoriel. Je devrais recevoir la Vraie.
# Make sure our custom method worked.
>>> p = Poll.objects.get(pk=1)
>>> p.was_published_recently()
True
Mais quand je tape (même sens que le tutoriel):
>>> p = Poll.objects.get(pk=1)
>>> p.was_published_recently()
Je reçois le message d'erreur suivant:
models.py line 12 in was_published_recently
NameError: global name 'datetime' is not defined..
J'ai importé datetime
et timezone
... je ne vois pas pourquoi j'obtiens ce message d'erreur.
Toute aide sera appréciée! 🙂
- Qu'advient-il si vous entrez
import datetime
dans une invite de commande Python? Et qui à une version de Python est-il?
Vous devez vous connecter pour publier un commentaire.
Ne pouvais pas reproduire le problème, votre code fonctionne pour moi.
Vous pouvez essayer quelque chose comme:
Dans les tests tutoriel (partie 5), nous travaillons sur la polls/tests.py fichier. Toutefois, lorsque vous exécutez le test, l'erreur se plaint de la polls/models.py fichier. Ce fichier n'est pas mentionné dans les tests tutoriel, mais vous pouvez le voir dans le message d'erreur.
Ajouter
from django.utils import timezone
à la polls/models.py et essayez à nouveau le test.Si votre problème est d'environ de la Rédaction de votre premier Django app, partie 5, vous devez ajouter ces deux lignes
Je sais que c'est un vieux thread. J'ai eu le même problème car j'ai oublié d'ajouter cette ligne:
de django.utils importation fuseau horaire
Sur ce message d'erreur, veuillez noter que Django docs disent:
$ sudo pip install pytz
Une fois que vous installez le package, le problème de la magie disparaître!
Juste pour les précisions c'est ce que j'ai besoin d'ajouter dans le haut de mon polls/models.py fichier:
J'ai essayé toutes les choses, mais le problème n'était toujours pas arriver résolu. À la fin de l'essai travaillé lorsque j'ai également importés dans le même ordre, comme mentionné par d'autres dans l'enveloppe trop.
J'ai dû import datetime à la fin, et seulement après qu'il a commencé à travailler.