谁能帮我解决这个问题。
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'
8条答案
按热度按时间u3r8eeie1#
它叫做models.Model and not models.model(大小写敏感).像这样修复您的投票模型-
zz2j4svz2#
我也得到了同样的错误,但我注意到,我已经输入了外国key,而不是外国Key,(大写K)如果有一个新手在那里,检查拼写和大写字母。
bvpmtnay3#
搜索中
属性错误:“module”对象没有属性“BinaryField”
把我带到了这里
上面的答案没有解决问题,所以我把我的答案贴出来。
BinaryField
是从Django 1.6开始添加的。如果你有一个旧版本,它会给予你上面的错误。你可能想先检查属性的拼写,就像上面的答案中建议的那样,然后检查以确保Django版本中的模块确实具有该属性。
jyztefdp4#
正如错误消息在最后一行中所说:文件
c:\projects\mysite..\mysite\polls\models.py
中的模块models
不包含类model
。此错误发生在Poll
类的定义中:类
model
在类Poll
的定义中拼写错误,或者在模块models
中拼写错误。另一种可能性是它在模块models
中完全缺失。也许它在另一个模块中,或者它还没有在models
中实现。kmynzznz5#
我意识到,通过查看堆栈跟踪,它试图加载我自己的脚本来代替另一个以相同方式调用的模块,即,我的脚本名为random.py,当我使用的模块试图导入“随机”包时,它正在加载我的脚本,导致循环引用,所以我重命名它并删除了它从工作文件夹中创建的.pyc文件,一切正常。
kb5ga3dv6#
在
class poll
中,您从models.model
继承了您的类,但在模型中没有使用该名称的模块。因为Python区分大小写,所以需要使用大写的
Model
而不是model
。8oomwypt7#
更改此类Poll(models.model):
到这个
class Poll(models.Model):
问题是models.model ---> models.Model
wkftcu5l8#
我也遇到过类似的问题。我在www.example.com文件中给出了从django.db导入模型admin.py。在将其修改为从MyAppName导入模型后,我的问题得到了解决。(虽然我不明白,我应该从我的应用程序导入模型,而不是django.db)另外,还有一件事就是验证你是如何定义主键的。如果您没有专门定义主键,请确保在www.example.com文件中添加DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'setting.py。