django 属性错误:“module”对象没有属性“model”

xoshrz7s  于 2023-05-19  发布在  Go
关注(0)|答案(8)|浏览(311)

谁能帮我解决这个问题。

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'
u3r8eeie

u3r8eeie1#

它叫做models.Model and not models.model(大小写敏感).像这样修复您的投票模型-

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

zz2j4svz2#

我也得到了同样的错误,但我注意到,我已经输入了外国key,而不是外国Key,(大写K)如果有一个新手在那里,检查拼写和大写字母。

bvpmtnay

bvpmtnay3#

搜索中
属性错误:“module”对象没有属性“BinaryField”
把我带到了这里
上面的答案没有解决问题,所以我把我的答案贴出来。
BinaryField是从Django 1.6开始添加的。如果你有一个旧版本,它会给予你上面的错误。
你可能想先检查属性的拼写,就像上面的答案中建议的那样,然后检查以确保Django版本中的模块确实具有该属性。

jyztefdp

jyztefdp4#

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

class Poll(models.model):

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

kmynzznz

kmynzznz5#

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

kb5ga3dv

kb5ga3dv6#

class poll中,您从models.model继承了您的类,但在模型中没有使用该名称的模块。
因为Python区分大小写,所以需要使用大写的Model而不是model

class poll(models.Model):
...
8oomwypt

8oomwypt7#

更改此类Poll(models.model):
到这个
class Poll(models.Model):

问题是models.model ---> models.Model

wkftcu5l

wkftcu5l8#

我也遇到过类似的问题。我在www.example.com文件中给出了从django.db导入模型admin.py。在将其修改为从MyAppName导入模型后,我的问题得到了解决。(虽然我不明白,我应该从我的应用程序导入模型,而不是django.db)另外,还有一件事就是验证你是如何定义主键的。如果您没有专门定义主键,请确保在www.example.com文件中添加DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'setting.py。

相关问题