2010-08-22 60 views
9

我已經學會了一些基本在Django,但我在這個教程stucked:當發現was_published_today添加如何在Django中導入日期時間模塊?

http://docs.djangoproject.com/en/dev/intro/tutorial02/#customize-the-admin-change-list 

錯誤:

global name 'datetime' is not defined 

某些搜索結果提示我導入日期時間模塊,但我有不知道該怎麼做。

polls/admin.pypolls/models.pyfrom django.db import datetime好像沒用

這是settings.py

# Django settings for kaka project. 

DEBUG = True 
TEMPLATE_DEBUG = DEBUG 

ADMINS = (
    # ('Your Name', '[email protected]'), 
) 

MANAGERS = ADMINS 

DATABASE_ENGINE = 'mysql'   # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 
DATABASE_NAME = 'kaka'    # Or path to database file if using sqlite3. 
DATABASE_USER = 'root'    # Not used with sqlite3. 
DATABASE_PASSWORD = 'z'   # Not used with sqlite3. 
DATABASE_HOST = ''    # Set to empty string for localhost. Not used with sqlite3. 
DATABASE_PORT = ''    # Set to empty string for default. Not used with sqlite3. 

# Local time zone for this installation. Choices can be found here: 
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name 
# although not all choices may be available on all operating systems. 
# If running in a Windows environment this must be set to the same as your 
# system time zone. 
TIME_ZONE = 'America/Chicago' 

# Language code for this installation. All choices can be found here: 
# http://www.i18nguy.com/unicode/language-identifiers.html 
LANGUAGE_CODE = 'en-us' 

SITE_ID = 1 

# If you set this to False, Django will make some optimizations so as not 
# to load the internationalization machinery. 
USE_I18N = True 

# Absolute path to the directory that holds media. 
# Example: "/home/media/media.lawrence.com/" 
MEDIA_ROOT = '' 

# URL that handles the media served from MEDIA_ROOT. Make sure to use a 
# trailing slash if there is a path component (optional in other cases). 
# Examples: "http://media.lawrence.com", "http://example.com/media/" 
MEDIA_URL = '' 

# URL prefix for admin media -- CSS, JavaScript and images. Make sure to use a 
# trailing slash. 
# Examples: "http://foo.com/media/", "/media/". 
ADMIN_MEDIA_PREFIX = '/media/' 

# Make this unique, and don't share it with anybody. 
SECRET_KEY = '5vqk*i^#8%[email protected]*0e6#uons*+gb^iakgg8y$(' 

# List of callables that know how to import templates from various sources. 
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.load_template_source', 
    'django.template.loaders.app_directories.load_template_source', 
#  'django.template.loaders.eggs.load_template_source', 
) 

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
) 

ROOT_URLCONF = 'kaka.urls' 

TEMPLATE_DIRS = (
    "/var/mycode/cina", # Change this to your own directory. 
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". 
    # Always use forward slashes, even on Windows. 
    # Don't forget to use absolute paths, not relative paths. 
) 

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'kaka.polls', 
    'django.contrib.admin' 
) 

這是polls/models.py

from django.db import models 

class Poll(models.Model): 
    # ... 
    def __unicode__(self): 
     return self.question 
    question = models.CharField(max_length=200) 
    def was_published_today(self): 
     return self.pub_date.date() == datetime.date.today() 
    was_published_today.short_description = 'Published today?' 
    pub_date = models.DateTimeField('date published') 

class Choice(models.Model): 
    # ... 
    def __unicode__(self): 
     return self.choice 
    poll = models.ForeignKey(Poll) 
    choice = models.CharField(max_length=200) 
    votes = models.IntegerField() 

這是polls/admin.py

from kaka.polls.models import Poll 
from kaka.polls.models import Choice 
from django.contrib import admin 

class ChoiceInline(admin.TabularInline): 
    model = Choice 
    extra = 3 
class PollAdmin(admin.ModelAdmin): 
    fieldsets = [ 
     (None,    {'fields': ['question']}), 
     ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}), 
    ] 
    list_display = ('question', 'pub_date', 'was_published_today') 
    inlines = [ChoiceInline] 
    list_filter = ['pub_date'] 
    search_fields = ['question'] 
    date_hierarchy = 'pub_date' 
admin.site.register(Poll, PollAdmin) 

admin.site.register(Choice) 
+0

接受這一答案。 – Mutant 2014-01-10 03:37:39

回答

6

polls/models.py你需要以同樣的方式添加import datetimefrom django.db import models

from django.db import models 
import datetime     # < add it here 

class Poll(models.Model): 
    # ... 
    def __unicode__(self): 
     return self.question 
    question = models.CharField(max_length=200) 
    def was_published_today(self): 
     return self.pub_date.date() == datetime.date.today() 
    was_published_today.short_description = 'Published today?' 
    pub_date = models.DateTimeField('date published') 

class Choice(models.Model): 
    # ... 
    def __unicode__(self): 
     return self.choice 
    poll = models.ForeignKey(Poll) 
    choice = models.CharField(max_length=200) 
    votes = models.IntegerField() 
1

無法在格式化文本到@扎克伯格的回答補充這一點,但它看起來像:

民調/ models.py

from django.db import models 
import datetime 

class Poll(models.Model): 
    # ... 
    def __unicode__(self): 
     return self.question 
7

我需要導入的時區模塊中民調/ models.py

from django.utils import timezone 

在我的版本的Django/Python的日期時間的不提供時區支持

+4

相同,這兩行都需要從Django教程中刪除錯誤:'from django.utils import timezone' and 'import datetime' – 2013-04-08 10:59:39

4

你可以嘗試添加這個,進口日期時間可以能夠could'nt工作:

from datetime import datetime 
相關問題