Подтвердить что ты не робот

AttributeError: объект 'module' не имеет атрибута 'model'

Может ли кто-нибудь помочь мне, пожалуйста, решить это.

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'
4b9b3361

Ответ 1

Он называется models.Model, а не models.model(с учетом регистра). Исправьте свою модель опроса следующим образом:

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

Надеюсь, что это поможет...

Ответ 2

У меня тоже была такая же ошибка, но я заметил, что набрал Foreign * k * ey, а не Foreign * K * ey, (capital K), если там есть новичок, проверьте орфографию и кепки.

Ответ 3

Как сказано в последней строке сообщения об ошибке: модуль models в файле c:\projects\mysite..\mysite\polls\models.py не содержит класса model. Эта ошибка возникает в определении класса Poll:

class Poll(models.model):

Либо класс model ошибочно написан в определении класса Poll, либо он ошибочно написан в модуле models. Другая возможность заключается в том, что он полностью отсутствует в модуле models. Возможно, это в другом модуле или еще не реализовано в models.

Ответ 4

Я понял, что, посмотрев на трассировку стека, он пытался загрузить мой собственный script вместо другого модуля, который называется таким же образом, т.е. мой script был вызван random.py, и когда я использовал модуль, пытаясь импортировать "случайный" пакет, он загружал мой script, вызывая круговую ссылку, и поэтому я переименовал его и удалил .pyc файл, который он создал из рабочей папки, и все работает нормально.

Ответ 5

Поиск

AttributeError: объект 'module' не имеет атрибута 'BinaryField'

посадил меня сюда.

Вышеупомянутые ответы не решают проблему, поэтому я отправляю свой ответ.

BinaryField добавлено после Django 1.6. Если у вас более старая версия, она даст вам вышеуказанную ошибку.

Сначала вы можете проверить правописание атрибута, как это предложено в приведенных выше ответах, а затем проверить, чтобы убедиться, что модуль в версии Django имеет этот атрибут.