Vous n'êtes pas identifié(e).
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
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
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