Django import datetime
À l'aide de:
- Ubuntu 11.04
- Django 1.3
- Python 2.7
- Suivant le tutoriel à
La rédaction de votre premier Django app, partie 1
Salut, je suis un débutant en python, venant de PHP en arrière-plan, donc je m'excuse si c'est une question stupide. Je suis coincé lorsque vous essayez d'appeler le p.was_published_today(). Elle renvoie cette erreur:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/path/to/mysite/polls/models.py", line 12, in was_published_today
pub_date = models.DateTimeField('date published')
NameError: global name 'datetime' is not defined
Mais le code dans mon models.py regarde (pour moi) exactement comme je devrais l'avoir selon le tutoriel:
from django.db import models
import datetime
# Create your models here.
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_today(self):
return self.pub_date.date() == datetime.date.today()
# other code but not relevant to the error
J'ai vu d'autres ici en demandant au sujet d'un très très similaires problème avec le datetime pas de travail dans ce tutoriel, mais aucune des réponses à vraiment m'a aidé à le faire fonctionner. Il travaille dans l'interpréteur python, mais pas dans le script. Je suis très confus & j'ai travaillé sur ce détail pour 45 minutes. Quelqu'un a une idée?
OriginalL'auteur Forrest | 2011-07-25
Vous devez vous connecter pour publier un commentaire.
Assurez-vous d'import datetime dans votre point de vue. Ajouter:
à votre Views.py page. Il y a un billet qui a été une fois ouvert pour cette question:
https://code.djangoproject.com/ticket/5668
C'est en fait son models.py page, le message d'erreur indique que le module datetime n'a pas été importé.
Juste à souligner: le problème, c'est qu'il doit importer
datetime
dans le affichage ainsi.Merci, cela n'a pas de résoudre le problème que j'ai, mais votre mention de l'édition views.py m'a donné une idée. J'ai ajouté
from datetime import datetime
en views.py tout en gardant leimport datetime
dans le models.py. Puis-je quitter le shell & re-entré, puis tout a fonctionné. Je n'ai aucune idée pourquoi, mais je suis sûr que ça va faire plus de sens que je apprendre le langage Python. Vous rawwwk mec! 🙂OriginalL'auteur rolling stone
Essayez ce qui suit:
Puis votre code devrait fonctionner.
datetime
est le nom du package et à l'intérieur c'est ledatetime
vous voulez travailler avec.date
est un attribut surdatetime
, pasdatetime.datetime
!Vous avez entièrement raison. J'ai besoin d'apprendre à lire. En regardant le traceback plus attentive révèle qu'il n'a guère de sens, puisque
datetime
est déjà importé.Wow, qui a travaillé quand je l'ai ajouté à la views.py mais pas quand je l'ai mis dans le models.py. Quand il est dans models.py j'ai obtenu un message d'erreur indiquant
AttributeError: 'method_descriptor' object has no attribute 'today'
. De toute façon, j'ai eu à travailler grâce. Le tutoriel vraiment faut mentionner que, ou être fixe, parce que je n'aurais jamais deviné que je devais modifier le views.py ce fichier est TROP, pour le faire fonctionner. Vous rawwwk mec! 🙂OriginalL'auteur Evan Porter
Vous pouvez utiliser celui-ci:
Passez par le lien Django Utils Fuseau Horaire
from django.utils.timezone
vous pouvez importeris_aware
,is_naive
, maintenant et peut personnaliser en fonction de vos besoins:Timezone-related classes and functions.
Ce module utilise
pytz
quand il est disponible et réserves quand il ne l'est pas.OriginalL'auteur Mushahid Khan