2009-01-19 114 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): 
... 
相關問題