Partage
  • Partager sur Facebook
  • Partager sur Twitter

[django]ManyToManyDescriptor' error

'ManyToManyDescriptor' object has no attribute 'all'

    17 septembre 2021 à 17:35:38

    Bonjour, je passe des heures à regarder mon code pour savoir ce qui ne vas pas pourriez vous m'aider

    extrai de models.py:

    class Messenger(models.Model):
        author = models.CharField(max_length=50)
        destinataire = models.CharField(max_length=50)
        sujet = models.CharField(max_length=50)
        body = models.TextField(max_length=1000)
        new = models.BooleanField(default=False)
        date = models.DateTimeField(default=timezone.now, verbose_name='date')
        draft =  models.BooleanField(default=False)
        started = models.BooleanField(default=False)
    
    
        class Meta:
            verbose_name = 'Messenger'
            ordering = ['date']
        
        def __str__(self):
            return self.body
    
    class GroupMsg(models.Model):
        messages = models.ManyToManyField(Messenger)
        date = models.DateTimeField(default=timezone.now)
    
        class Meta:
            verbose_name = 'Group Msg'
            ordering=['date']
        def __str__(self) -> str:
            return str(self.date)
    

    là où mon code ne marche pas:

    list_group_msg = GroupMsg.messages.all()
    

    merci de toute votre aide


    • Partager sur Facebook
    • Partager sur Twitter
      17 septembre 2021 à 17:47:39

      GroupMsg.messages est bien l'attribut messages de la classeGroupMsg et c'est bien un models.ManyToManyField qui n'a aucune chance d'avoir all comme attribut. Reste à raconter ce que vous cherchez à faire.

      • Partager sur Facebook
      • Partager sur Twitter
        17 septembre 2021 à 18:00:30

        ah bon? pourtant dans la docs de django il y a ceci:

        la definition :

        >>> a1 = Article(headline='Django lets you build Web apps easily')
        

        l'example

        >>> a1.publications.all()
        <QuerySet [<Publication: The Python Journal>]>
        >>> a2.publications.all()
        <QuerySet [<Publication: Highlights for Children>, <Publication: Science News>, <Publication: Science Weekly>, <Publication: The Python Journal>]>
        

        les models:

        from django.db import models
        
        class Publication(models.Model):
            title = models.CharField(max_length=30)
        
            class Meta:
                ordering = ['title']
        
            def __str__(self):
                return self.title
        
        class Article(models.Model):
            headline = models.CharField(max_length=100)
            publications = models.ManyToManyField(Publication)
        
            class Meta:
                ordering = ['headline']
        
            def __str__(self):
                return self.headline
        

        la docs: https://docs.djangoproject.com/fr/3.2/topics/db/examples/many_to_many/


        -
        Edité par TheSmiley 17 septembre 2021 à 18:02:03

        • Partager sur Facebook
        • Partager sur Twitter
          17 septembre 2021 à 19:04:15

          Certes mais a1 et a2 sont alors des instances d'Article... pas la classe Article.

          • Partager sur Facebook
          • Partager sur Twitter

          [django]ManyToManyDescriptor' error

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown