Lier plusieurs objets d'un model avec autre model

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

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 |

Édité par taoufik07

+0 -0
Staff

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

"I think that it’s extraordinarily important that we in computer science keep fun in computing." – Alan J. Perlis

+1 -0
Auteur du sujet

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 |

Édité par taoufik07

+0 -0
Staff

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

"I think that it’s extraordinarily important that we in computer science keep fun in computing." – Alan J. Perlis

+0 -0
Auteur du sujet

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)

Édité par taoufik07

+0 -0
Auteur du sujet

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)

Édité par taoufik07

+0 -0
Staff

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.

"I think that it’s extraordinarily important that we in computer science keep fun in computing." – Alan J. Perlis

+1 -0
Auteur du sujet

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

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

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