任何人都可以帮我解决这个问题。
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'
答案 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
不包含任何类model
。 Poll
类的定义中出现此错误:
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):
...