Django - nicht bekommen kann eine Zeit-Funktion (Zeitzone, Datum und Uhrzeit), um richtig zu arbeiten, Immer ErrorName Nachricht: global name nicht definiert
Ich bin ein Neuling Django,
Ich bin nach einem tutorial, und ich hatte zwei Modelle, die unten gezeigt:
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
Den folgenden code aus dem tutorial. Ich sollte Wahr werden.
# Make sure our custom method worked.
>>> p = Poll.objects.get(pk=1)
>>> p.was_published_recently()
True
Aber wenn ich den Typ (selbe Zeilen als tutorial):
>>> p = Poll.objects.get(pk=1)
>>> p.was_published_recently()
Bekomme ich die folgende Fehlermeldung:
models.py line 12 in was_published_recently
NameError: global name 'datetime' is not defined..
Ich importiert datetime
und timezone
... ich sehe nicht ein, warum bekomme ich diese Fehlermeldung.
Jede Hilfe wird dankbar sein! 🙂
- Was passiert, wenn Sie geben Sie
import datetime
in einem Python-Eingabeaufforderung? Und welche Python-version es ist?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konnte das problem nicht reproduzieren, dein code funktioniert bei mir.
Sie könnten versuchen, mit so etwas wie dies:
In den tests tutorial (Teil 5), arbeiten wir auf der polls/tests.py - Datei. Allerdings, wenn Sie den test ausführen, wird die Fehlermeldung beschwert sich über die polls/models.py - Datei. Diese Datei wird nicht erwähnt, in den tests tutorial, aber man sieht es in der Fehlermeldung.
Hinzufügen
from django.utils import timezone
zu den polls/models.py und versuchen Sie den test erneut.Wenn Ihr problem ist, über Schreiben des ersten Django-app, Teil 5, sollten Sie fügen Sie diese zwei Zeilen
Ich weiß, das ist ein älterer thread. Ich hatte das gleiche problem, da vergaß ich diese Zeile hinzufügen:
von django.utils import timezone
Etwa, dass die Fehlermeldung, beachten Sie bitte, was Django-docs sagen:
$ sudo pip install pytz
Sobald Sie das Paket installieren, das problem auf Magische Weise verschwinden!
Nur zur Klarstellung das ist, was ich brauchte, um hinzuzufügen, an der Spitze meiner polls/models.py Datei: