2009-01-19 74 views
18

谁能帮助我,请解决这个..AttributeError的:“模块”对象有没有属性“模型”

from django.db import models 

# Create your models here. 
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 = models.CharField(max_length=200) 
    votes = models.IntegerField() 

运行:

c:\projects\mysite>python manage.py sql polls 
Traceback (most recent call last): 
    File "manage.py", line 11, in <module> 
    execute_manager(settings) 
    File "C:\Python25\Lib\site-packages\django\core\management\__init__.py", line 340, in execute_manager 
    utility.execute() 
    File "C:\Python25\Lib\site-packages\django\core\management\__init__.py", line 295, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "C:\Python25\Lib\site-packages\django\core\management\base.py", line 195, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "C:\Python25\Lib\site-packages\django\core\management\base.py", line 221, in execute 
    self.validate() 
    File "C:\Python25\Lib\site-packages\django\core\management\base.py", line 249, in validate 
    num_errors = get_validation_errors(s, app) 
    File "C:\Python25\lib\site-packages\django\core\management\validation.py", line 28, in get_validation_errors 
    for (app_name, error) in get_app_errors().items(): 
    File "C:\Python25\lib\site-packages\django\db\models\loading.py", line 128, in get_app_errors 
    self._populate() 
    File "C:\Python25\lib\site-packages\django\db\models\loading.py", line 57, in _populate 
    self.load_app(app_name, True) 
    File "C:\Python25\lib\site-packages\django\db\models\loading.py", line 72, in load_app 
    mod = __import__(app_name, {}, {}, ['models']) 
    File "c:\projects\mysite\..\mysite\polls\models.py", line 4, in <module> 
    class Poll(models.model): 
AttributeError: 'module' object has no attribute 'model' 
+1

@jazzrai - 这是正确的吗?你会将它标记为已回答吗? – Glycerine 2011-07-12 12:45:57

+0

@jazzrai:你介意接受答案吗?这也将有助于未来的读者! – MERose 2016-03-10 13:17:20

回答

2

随着错误消息的最后一行说: :文件c:\projects\mysite..\mysite\polls\models.py中的模块models不包含类model。在Poll类的定义发生此错误:

class Poll(models.model): 

要么类model在类Poll的定义拼写错误或它的模块models中拼错。另一种可能性是它完全从模块models中丢失。也许它在另一个模块中,或者它尚未在models中实施。

+0

感谢您的建议。 – jbcedge 2009-01-19 08:29:57

62

它被称为models.Model而不是models.model(区分大小写)。修复您的投票模式是这样 -

class Poll(models.Model): 
    question = models.CharField(max_length=200) 
    pub_date = models.DateTimeField('date published') 

希望帮助...

2

我意识到,通过查看堆栈跟踪它试图加载我自己的脚本来代替另一个模块的调用同样的方式,即我的脚本被称为random.py,当我使用的一个模块试图导入“随机”包时,它正在加载我的脚本,导致循环引用,所以我重命名并删除了它创建的.pyc文件工作文件夹和事情工作得很好。

7

我也得到了同样的错误,但我注意到,我在国外已键入* ķ * EY,而不是外国* ķ * EY,(资本K)如果有新手在那里,检查拼写和帽子。

1

搜索

AttributeError: 'module' object has no attribute 'BinaryField'

落在我在这里。

上面的答案没有解决问题,所以我张贴我的答案。

BinaryField自从Django 1.6以来增加了。如果你有一个旧版本,它会给你上面的错误。

您可能需要首先检查属性的拼写,如上述答案中的建议,然后检查以确保Django版本中的模块确实具有该属性。

2

class poll中,您从models.model继承了类,但模型中没有称为该名称的模块。

由于Python区分大小写,因此您需要使用大写字母Model而不是model

class poll(models.Model): 
... 
相关问题