Vous n'êtes pas identifié(e).
Bonjour,
Je cherche lorsque un champ passe à TRUE de ma table "invitation" de mon modèle à mettre à jour une autre table ("manager") qui n'est pas directement connectée à cette dernière. Pour cela, je surcharge la méthode save() appartenant à la table invitation. C'est un peu compliqué a expliquer comme ça, je vais donc vous exposer une partie de mon code:
class membre(models.Model):
......
class manager(models.Model):
membres = models.ForeignKey(membre)
classes = models.ForeignKey(classe)
class classe(models.Model):
...........
class invitation(models.Model):
idclasse = models.ForeignKey(classe)
idMembreDest = models.ForeignKey(membre, blank = True, null=True)
AcceptInvit = models.BooleanField(default = False, help_text = "Si le membre accepte l'invitation, il est automatiquement ajouté en tant que en tant que manager")
Donc je veux que la table manager se remplisse lorsque le champ AcceptInvit passe à True. Voici ce que j'ai essayé dans la méthode save() de la classe invitation.
def save(self, *args, **kwargs):
if self.AcceptInvit == True :
m = membre.objects.get(pk = self.idMembreDest.id)
g = classe.objects.get(pk = self.idclasse.id)
p = m.manager_set.create(classes = g.id, membres= m.id)
super(invitation, self).save(*args, **kwargs)
ça aussi
def save(self, *args, **kwargs):
if self.AcceptInvit == True :
manage = manager.objects.create(classes =self.idclasse.id, membres=self.idMembreDest.id)
super(invitation, self).save(*args, **kwargs)
ou encore ça
def save(self, *args, **kwargs):
if self.AcceptInvit == True :
manager = manager(classes=self.idclasse.id, membres=self.idMembreDest.id)
manager.save()
Mon code d'erreur est le suivant :
Cannot assign "1": "manager.classes" must be a "classe" instance.
Voila, si quelqu'un peut me venir en aide d'avance merci
Hors ligne
Bonjour,
Le 05/10/2012 13:18, polo a écrit :
>
def save(self, *args, **kwargs):
> if self.AcceptInvit == True :
> m = membre.objects.get(pk = self.idMembreDest.id)
> g = classe.objects.get(pk = self.idclasse.id)
> p = m.manager_set.create(classes = g.id, membres= m.id)
> super(invitation, self).save(*args, **kwargs)
>
J'aurais remplacé la dernière ligne par :
p = m.manager_set.create(classes = g, membres= m)
Cordialement.
Hors ligne
Merci,
C'est exactement ça !!
Hors ligne