Django-fr

Forum

#1 30-10-2012 09:51:24

torrak
Membre
Inscription : 31-08-2011
Messages : 47

Problème de clés dupliquées

Bonjour,

J'ai un gros souci au niveau de l'enregistrement dans ma table membre qui a une relation 1 à 1 avec la table User. Donc au final membre est un User_profile. Quand j'inscris un nouveau User, dans ma table, cela ajoute également un nouveau membre. Jusque là tout va bien....
Je crois que je ne comprends pas exactement le processus d'enregistrement mais surtout de modification car c'est à ce moment là que ça part en cacahuète. Voici donc mon code :

models.py

class Membre(models.Model):
   user = models.ForeignKey(User, unique = True)
   #id_membre = models.AutoField(primary_key = True)
   nom = models.CharField(max_length=50)
   prenom = models.CharField(max_length=50)
   e_mail = models.EmailField()
   ImagePortrait = models.FileField(upload_to = "images_membres/", blank = True, null=True)
   ImageLarge = models.IntegerField(blank = True, null=True, help_text = "Remplissage automatique, ne pas remplir")
   ImageHaut = models.IntegerField(blank = True, null=True,  help_text = "Remplissage automatique, ne pas remplir")
   ThumbnailLarge = models.ImageField(upload_to="images_membres/", blank = True, null=True, help_text = "Remplissage automatique, ne pas remplir")

   def save(self, *args, **kwargs):
      super(Membre, self).save(*args, **kwargs)
      #kwargs['force_insert'] = False
      #kwargs['force_update'] = True
      if self.ImagePortrait:
        ReziseIm(self.ImagePortrait, self.ThumbnailLarge, self.id, self.ImageLarge, self.ImageHaut)
      super(Membre, self).save(*args, **kwargs)

Lorsque je rentre en modification pour un membre lambda dans l'interface d'admin mon erreur est la suivante :
   

duplicate key value violates unique constraint "geo_membre_user_id_key"
DETAIL:  Key (user_id)=(1) already exists.

Alors que lorsque je modifie mon propre profil administrateur tout marche parfaitement...

Du coup vous pouvez voir les lignes kwargs commentées car j'ai essayé de forcer l'update mais j'ai toujours la même erreur. Je fais également deux fois "super(Membre, self).save(*args, **kwargs)", j'ai vu cela dans un tuto et je ne sais pas exactement pourquoi...

Bref je ne comprends plus ce que je fais et ça ne marche plus...Et en plus ça m'énerve...

Si vous avez des réponses merci d'avance..

PS Administrateurs du site : je crois que nous nous faisons spammer par IA_Dinorah

Dernière modification par torrak (30-10-2012 09:53:20)

Hors ligne

#2 30-10-2012 13:57:45

torrak
Membre
Inscription : 31-08-2011
Messages : 47

Re : Problème de clés dupliquées

Re bonjour,

Je reviens vers vous pour vous apporter quelques précisions. Lorsque j'enregistre un nouvel User et que je crée son profil membre, c'est toujours le même user_id qui pose problème le "1".
Ce qui est très curieux étant donné que je travail sur le 3 ou 4.
Je crois que l'erreur va être dur à trouver...

Hors ligne

#3 30-10-2012 14:29:48

torrak
Membre
Inscription : 31-08-2011
Messages : 47

Re : Problème de clés dupliquées

Finalement je me réponds tout seul,

J'avais ce morceau de code qui trainait dans mon admin qui me faisait tout planter.

def save_model(self, request, obj, form, change):
        obj.user = request.user
        obj.save()

Hors ligne

Pied de page des forums