2009-01-19 4 views
18

Quelqu'un peut-il me aider plaît à résoudre ce ..AttributeError: objet 'module' n'a pas d'attribut 'modèle'

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() 

Course à pied:

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 - Est-ce correct? Voulez-vous le marquer comme répondu? – Glycerine

+0

@jazzrai: Pourriez-vous accepter une réponse? Cela aidera aussi les futurs lecteurs! – MERose

Répondre

2

Comme le message d'erreur indique dans la dernière ligne : le module models dans le fichier c:\projects\mysite..\mysite\polls\models.py ne contient aucune classe model. Cette erreur se produit dans la définition de la classe Poll:

class Poll(models.model): 

Soit la classe model est mal orthographié dans la définition de la classe Poll ou il est mal orthographié dans le module models. Une autre possibilité est qu'il soit complètement absent du module models. Peut-être que c'est dans un autre module ou il n'est pas encore implémenté dans models.

+0

merci pour la suggestion. – jbcedge

62

Il s'appelle models.Model et non models.model (sensible à la casse). Fixer votre modèle de sondage comme celui-ci -

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

espoir qui aide ...

+0

pourquoi cela a-t-il été tant mis à jour? – anthropomorphic

+7

@MichaelDorst: Parce que cette question a été vue plusieurs fois, cette réponse est correcte, et la réponse n'a pas été acceptée. À mon avis, c'est une faille de SO que la réponse ne peut pas être votée comme correcte par la communauté. – Olhovsky

2

j'ai réalisé qu'en regardant la pile trace, il a essayé de charger mon propre script en place d'un autre module appelé de la même manière Par exemple, mon script s'appelait random.py et quand un module que j'utilisais essayait d'importer le paquet "random", il chargeait mon script provoquant une référence circulaire et je l'ai donc renommé et effacé un fichier .pyc qu'il avait créé le dossier de travail et les choses ont bien fonctionné.

7

J'ai aussi eu la même erreur, mais je remarque que j'avais tapé dans l'étranger * k * ey et non étranger * K * ey, (K majuscule) s'il y a un débutant là-bas, consultez l'orthographe et des bouchons.

1

Recherche

AttributeError: 'module' object has no attribute 'BinaryField'

me débarquèrent.

Les réponses ci-dessus n'ont pas résolu le problème, donc je poste ma réponse.

BinaryField a été ajouté depuis Django 1.6. Si vous avez une version plus ancienne, cela vous donnera l'erreur ci-dessus.

Vous pouvez d'abord vérifier l'orthographe de l'attribut, comme suggéré dans les réponses ci-dessus, puis vérifier que le module de la version Django possède bel et bien l'attribut.

2

Dans class poll, vous avez hérité de votre classe de models.model mais aucun module n'est appelé dans ce modèle. Comme Python est sensible à la casse, vous devez utiliser la valeur Model au lieu de model.

class poll(models.Model): 
... 
Questions connexes