AttributeError:'module'对象没有属性'model'

时间:2009-01-19 08:19:25

标签: python django

任何人都可以帮我解决这个问题。

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'

6 个答案:

答案 0 :(得分:66)

它被称为models.Model而不是models.model(区分大小写)。修复你的民意调查模型 -

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

希望有帮助...

答案 1 :(得分:8)

我也有同样的错误,但我注意到我输入了外国* k * ey而不是外国* K * ey,(大写K)如果有是一个新手,检查拼写和大写。

答案 2 :(得分:2)

正如错误消息在最后一行中所述:文件models中的模块c:\projects\mysite..\mysite\polls\models.py不包含任何类modelPoll类的定义中出现此错误:

class Poll(models.model):

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

答案 3 :(得分:2)

我意识到通过查看堆栈跟踪,它试图加载我自己的脚本来代替另一个名称相同的模块,即我的脚本名为random.py,当我使用的模块试图导入&#34;随机&#34;包,它正在加载我的脚本导致循环引用,所以我重命名它并删除了它从工作文件夹创建的.pyc文件,并且工作正常。

答案 4 :(得分:2)

搜索

  

AttributeError:&#39; module&#39;对象没有属性&#39; BinaryField&#39;

让我来到这里。

上述答案并没有解决问题,所以我发布了答案。

自Django 1.6以来已添加

BinaryField。如果您的版本较旧,则会出现上述错误。

您可能希望首先检查属性的拼写,如上面的答案所示,然后检查以确保Django版本中的模块确实具有该属性。

答案 5 :(得分:2)

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

由于Python区分大小写,因此您需要使用大写Model代替model

class poll(models.Model):
...