Lier plusieurs objets d'un model avec autre model

a marqué ce sujet comme résolu.

Bonjour, j'aimerais relier plusieurs objets d'un model avec d'autres objets chaque fois qu'elles sont crée par exemple je creer j'ai des objets d'un model A et je veux les lier avec chaque objet crée du model B

Update ------------------------

J'ai une class Taches et une autre class Ouvrier, je veux creer par exemple une relation pour que chaque tache ajouter par l'admin s'ajoute a l'ouvrier et chaque fois un ouvrier se connecte un tableau ↓ de ce genre s'affiche

  • | Taches | Terminées |

  • | Tache 0 | 0 |
  • | Tache 1 | 1 |
  • | Tache 2 | 1 |
  • | Tache 3 | 0 |
+0 -0

Bonjour, je t'invite à lire la documentation (qui au passage est à 100% en français) de Django car tu as normalement tout ce qu'il te faut dedans : https://docs.djangoproject.com/fr/1.9/topics/db/examples/.

Si jamais tu ne vois toujours pas, donne nous un peu plus de détails sur ce que tu veux :)

+0 -0

J'ai une class Taches et une autre class Ouvrier, je veux creer par exemple une relation pour que chaque tache ajouter par l'admin s'ajoute a l'ouvrier et chaque fois un ouvrier se connecte un tableau ↓ de ce genre s'affiche

  • | Taches | Terminées |

  • | Tache 0 | 0 |
  • | Tache 1 | 1 |
  • | Tache 2 | 1 |
  • | Tache 3 | 0 |

+0 -0

Et alors quel est le problème ? Quel est ton code ? Où ne fonctionne t-il pas ?

gustavi

j'ai pas trouver comment lier toutes les taches a touts les ouvrier

class ouvrier(models.Model): user = models.OneToOneField(User) ci = models.CharField(max_length=256) def str(self): return self.ci class tache(models.Model): ouvrier = models.ManyToManyField(ouvrier) titre = models.CharField(max_length=256) sloved = models.BooleanField() def str(self): return "{0} - {1}".format(self.titre,self.ouvrier.ci)

+0 -0

Peux-tu nous montrer ton code et ce que tu as essayé ?

gustavi

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class ouvrier(models.Model): 
    user = models.OneToOneField(User) 
    ci = models.CharField(max_length=256) 
    def __str__(self): 
       return self.ci 
class tache(models.Model): 
      ouvrier = models.ManyToManyField(ouvrier) 
      titre = models.CharField(max_length=256) 
      sloved = models.BooleanField() 
      def __str__(self): 
         return "{0} - {1}".format(self.titre,self.ouvrier.ci)
+0 -0

Alors déjà je te conseille de nommer tes classes avec des majuscules au début confomément à la PEP-8. Tu as également un problème d'indentation ligne 8. Enfin ligne 10 il faut remplacer str par __str__.

Ton code est bon sinon.

+0 -0

Alors déjà je te conseille de nommer tes classes avec des majuscules au début confomément à la PEP-8. Tu as également un problème d'indentation ligne 8. Enfin ligne 10 il faut remplacer str par __str__.

Ton code est bon sinon.

gustavi

J'aimerai te remercier ainsi que l'equipe du forum

oui oui je sais, juste que je suis loin de mon esapce de travail donc j'ai fait vite avec l'editeur de zds

pour mon probleme la solution que j'avais est : avant de sauvgarder un ouvrier ou une tache je les relie mais je pense que la complexité sera eleve => parceque si seulement (min) j'ai 100 ouvrier et 1000 tache et a chaque fois qu'un nouveau ouvrier s'ajoute on doit le relier avec 1000 taches et avec le methode que j'y ai penser (lier avant de sauvgarder ) ça va pas marcher

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte