Django-fr

Forum

#1 07-09-2012 15:18:46

ael666
Membre
Inscription : 22-11-2011
Messages : 15

erreur AttributeError

la version de django 1.2.5

bonjour,

j'ai besoin d'aide sur une erreur

j'ai deux modeles >>

# -*- coding: utf-8 -*-
from django.db import models

# Create your models here.
class ESPECE (models.Model):
    ID = models.AutoField(null=False,blank=True,primary_key=True)
    TYPO = models.CharField (max_length=25, blank=False)
    HABITAT = models.CharField (max_length=35, blank=False)
    NOM_CITE = models.CharField (max_length=255,null=True, blank=True)
    LB_NOM = models.CharField(max_length=255,null=True, blank=True)
    TYPE = models.CharField(max_length=255,null=True, blank=True)
    CD_NOM = models.CharField(max_length=255)
    NOM_COMPLET =  models.CharField(max_length=255,null=True, blank=True)
    ID_TYPO = models.CharField(max_length=255,null=False, blank=True)

    def __unicode__(self):
        return self.LB_NOM
    
    class Meta :
        db_table = 'ESPECE'

class TYPOLOGIE (models.Model):
    ID_TYPO = models.CharField(null=False,max_length=50,blank=True,primary_key=True)
    CD_HAB = models.CharField (max_length=25,null=True, blank=True)
    CD_HAB_SUP = models.CharField (max_length=25)
    NIVEAU = models.CharField (max_length=25)
    LB_DESCRI = models.CharField (max_length=255,blank=True)
    ESPECE = models.ManyToManyField(ESPECE)

    

    def __unicode__(self):
        return self.ID_TYPO
    
    class Meta :
        db_table = 'TYPOLOGIE'

et en essayant d'afficher les données liées avec  TYPOLOGIE.ESPECE.all(), django me renvoie cette erreur

AttributeError: 'ReverseManyRelatedObjectsDescriptor' object has no attribute 'all'

les deux tables sont accessibles séparément...

merci de votre aide

Hors ligne

#2 29-10-2012 07:38:04

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : erreur AttributeError

Bonjour,

Avant toute chose, le document pep008 indique les bonnes habitudes syntaxiques pour l'écriture de code Python: http://www.python.org/dev/peps/pep-0008/
Le tout majuscule rend le code quasiment illisible.

Le 7 sept. 2012 à 16:18, ben <benlefeuvre _AT_ hotmail.fr> a écrit :

> et en essayant d'afficher les données liées avec
> TYPOLOGIE.ESPECE.all(), django me renvoie cette erreur
>
> AttributeError: 'ReverseManyRelatedObjectsDescriptor' object has no
> attribute 'all'

A la vue de l'erreur, les modèles copiés me semblent incomplets.
Typologie.espece est une relation directe et non inversée.
Pour pouvoir vous aider, il nous faudrait au minimum la pile d'exécution.

Cordialement,
Xavier Ordoquy,
Linovia.

Hors ligne

#3 29-10-2012 09:37:34

Florian Strzelecki
Membre
Inscription : 11-08-2010
Messages : 40

Re : erreur AttributeError

Bonjour,

En utilisant "TYPOLOGIE.ESPECE" vous accédez à l'attribut d'une **classe**,
et pas d'une instance.
Or pour utiliser ce "ESPECE.all()' il faut passer par une instance de
TYPOLOGIE.
Si vous pouviez aussi nous préciser pourquoi vous voulez faire ce .all(),
nous pourrions vous indiquer un exemple de marche à suivre plus précis.


Et retirez ces majuscules, c'est illisibles. Si votre base doit contenir
des majuscules, utilisez l'attribut db_column (
https://docs.djangoproject.com/en/1.2/ref/models/fields/#db-column ) dans
vos champs.

Florian S.

Le 29 octobre 2012 07:38, Xavier Ordoquy <xordoquy _AT_ linovia.com> a écrit :

> A la vue de l'erreur, les modèles copiés me semblent incomplets.
> Typologie.espece est une relation directe et non inversée.
> Pour pouvoir vous aider, il nous faudrait au minimum la pile d'exécution.
>
>

Hors ligne

Pied de page des forums