我已按照此tutorial中的所有步骤操作,但收到此错误。如何解决?
dyn-72-33-214-65:mysite mona$ python manage.py shell
Python 2.7.5 (default, Sep 2 2013, 05:24:04)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from polls.models import Poll, Choice
Traceback (most recent call last):
File "<console>", line 1, in <module>
ImportError: cannot import name Poll
目录结构如下:
>>> quit()
dyn-72-33-214-65:mysite mona$ pwd
/Users/mona/data_mining/mysite
dyn-72-33-214-65:mysite mona$ ls
db.sqlite3 manage.py mysite polls
dyn-72-33-214-65:mysite mona$ cd polls/
dyn-72-33-214-65:polls mona$ ls
__init__.py admin.py models.pyc views.py
__init__.pyc models.py tests.py
dyn-72-33-214-65:polls mona$ cd ../mysite/
dyn-72-33-214-65:mysite mona$ ls
__init__.py settings.py urls.py
__init__.pyc settings.pyc wsgi.py
答案:错过了在models.py中添加这些行 来自django.db导入模型
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
poll = models.ForeignKey(Poll)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
答案 0 :(得分:4)
如果您正好接受official tutorial,可能会出现在某些时候更改版本教程的情况。请记住,本教程的每个版本都可以略微抖动。
例如,在v1.7的教程中,它是:
from polls.models import Question, Choice
对于v1.6,它是
from polls.models import Poll, Choice
如果您在教程中间切换了版本,那么您应该检查models.py文件并查看您的类具有的名称。导入这些类名。例如,如果你有
from django.db import models
class MyQuestion(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class MyChoice(models.Model):
question = models.ForeignKey(Question)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
然后你应该相应导入:
>>> from polls.models import MyQuestion, MyChoice
答案 1 :(得分:1)
我在另一个帖子中发布了类似的答案。就我而言,当我遇到问题时,我使用了
来自projectname.polls.models import Poll,Choice
它适用于我的情况。我想我搞砸了创建目录(虽然在我快速审查期间看起来没问题但无法确认)
答案 2 :(得分:0)
我正在使用
from models import Poll, Choice
不是from polls.models import Poll, Choice
为我工作